我搜索了很多,但我找不到從特定行號的csv文件中讀取數據的方法。python - 從最後一行讀取csv文件
csv文件即時更新。爲了更準確的分隔符是一個tab空間 因此,在t1時刻:
1 2 3
5 6 7
8 9 10
11 12 13
14 15 16
在時間t2是
1 2 3
5 6 7
8 9 10
11 12 13
14 15 16
17 18 19
我有一個集合(雙端隊列),其中我想追加來自coloumn0的csv文件的數據。
此刻我寫的代碼是能夠做到這一點: 在時間0:
[deque([0, 0, 0, 0, 0], maxlen=5)]
在時間1:
[deque(['1', '5', '8', '11', '14'])]
在時間2:
[deque(['5', '8', '11', '14','17'])]
我編寫的代碼是以我想要的格式閱讀它。
Question:
但是當我在某個'x'點重新打開文件時。它應該從
[deque(['8', '11', '14','17','x'])]
,而不是
[deque(['1', '5', '8', '11', '14'])]
閱讀和有可能是我讀一行,並跳轉到下一個文件?有沒有圖書館可以讓我這樣做?
我清楚了嗎?或者我錯過了一些信息?
採取從裴家(所有學分他)輸入更新這個問題的答案:
perf_his = []
for a in range(len(filename)):
perf_his += [deque([0]*5,maxlen=5)]
for a in range(len(filename)):
lines = open(filename[a]).readlines()[-NUM_LINES:]
mydata = [line.split()[0] for line in lines]
for i in range(0, len(mydata)):
perf_his[a].append(mydata[i])
print perf_his
你可能會考慮調整http://code.google.com/p/ pytailer/ – 2013-02-08 23:15:31
我覺得很難理解你爲什麼要重新打開文件,爲什麼不重新使用文件句柄。重新打開'x'似乎你想要一行'x'行'x'+ 5,至於第1行,你讀了5行數據,但'x'的例子顯示它最後一行。是否希望從出列中獲取數據,但是當您從csvreader中檢測到新數據時,您希望將其添加到出列中。您如何知道什麼時候沒有更多數據要添加到CSV文件中? – sotapme 2013-02-08 23:44:23
我有多個文件,我必須不斷閱讀。爲了做到這一點,我需要關閉一個文件處理程序,然後重新打開另一個文件處理程序。對? 退出程序並自動確保沒有更多數據寫入csv文件。 – pistal 2013-02-09 15:08:28