2017-06-21 29 views
1

我在網絡驅動器上的.csv文件中存儲了數千個時間序列。在更新文件之前,我首先獲取文件的最後一行以查看時間戳,然後在該時間戳之後使用數據更新。如何通過網絡驅動器快速獲取.csv文件的最後一行,以便我不必加載僅用於最後一行的整個大文件.csv如何通過網絡驅動器快速獲取.csv文件的最後一行?

+1

我找到了答案[這裏](https://stackoverflow.com/a/37551666/1367204) – user1367204

回答

1

有一個漂亮的reversed工具,這一點,假設你使用內置csv模塊:

how to read a csv file in reverse order in python

簡而言之:

import csv 
with open('some_file.csv', 'r') as f: 
    for row in reversed(list(csv.reader(f))): 
     print(', '.join(row)) 

在我的測試文件:

1: test, 1 
2: test, 2 
3: test, 3 

此輸出:

test, 3 
test, 2 
test, 1 
+0

我喜歡這種感覺仍然會讀取整個文件到內存中,而我需要的只是閱讀最後一行放入內存中,這樣不會浪費時間將不必要的內容讀入內存。 – user1367204

+0

你可以嘗試更明確一點,不用遍歷每一行索引: 'print(','.join(reversed(list)是一個更好的方式來做到這一點,但這是我想到的... – Doug

+0

我剛剛測試過,它是相同的時間量=( – user1367204

相關問題