2016-10-16 49 views
1

我使用下面的代碼來讀取我的csv的最後一行。檔案 不斷更新,並且運作良好。我收到最後一行 ,它由11個逗號分隔的值組成。它是這樣:Python 2.7在CSV中讀取新行並將其存儲爲變量

16年10月16日,-1,假,下午4:00:00,4585,......等

現在我想從第6列取值例如9,並將它們作爲兩個單獨的變量存儲起來,然後將它們用作條件。有沒有簡單的方法來添加幾行到現有的代碼來實現這一點,或者我必須編寫一個新的代碼?

import time, os 

#Set the filename and open the file 
filename = 'Test.csv' 
file = open(filename,'r') 

#Find the size of the file and move to the end 
st_results = os.stat(filename) 
st_size = st_results[6] 
file.seek(st_size) 

while 1:`enter code here` 
    where = file.tell() 
    line = file.readline() 
    if not line: 
     time.sleep(0.5)`enter code here` 
     file.seek(where) 
    else: 
     print line, # already has newline 
+0

上午,各執','和索引行? –

+2

爲什麼你不只是使用'csv'模塊? – kindall

+0

你爲什麼使用'time.sleep()'?另外,在點擊「發佈問題」按鈕之前,請仔細閱讀您的代碼。 \''在這裏輸入代碼''有2個無關位。 – MattDMo

回答

1

你當然可以在那裏添加幾行來獲得你想要的。我會用逗號分隔每行,使用line.split(',')。這將返回一個像這樣的數組['10/16/16', '-1', 'false', '4:00:00 PM', '4585' ]。然後,您可以簡單地將數組保存在索引6〜9以便於使用,並稍後在代碼中使用它。

例)

while 1:`enter code here` 
where = file.tell() 
line = file.readline() 
if not line: 
    time.sleep(0.5)`enter code here` 
    file.seek(where) 
else: 
    arr_line = line.split(',') 
    var6 = arr_line[6] 
    var7 = arr_line[7] 
    var8 = arr_line[8] 
    var9 = arr_line[9] 

    # other code ... 

    print line 
相關問題