41
當我用csv.reader瀏覽文件時,如何返回到文件頂部。如果我用一個普通的文件來做,我可以做一些像「file.seek(0)」的東西。有什麼類似的csv模塊?Python csv.reader:如何返回到文件的頂部?
提前感謝;)
當我用csv.reader瀏覽文件時,如何返回到文件頂部。如果我用一個普通的文件來做,我可以做一些像「file.seek(0)」的東西。有什麼類似的csv模塊?Python csv.reader:如何返回到文件的頂部?
提前感謝;)
您可以直接搜索文件。例如:
>>> f = open("csv.txt")
>>> c = csv.reader(f)
>>> for row in c: print row
['1', '2', '3']
['4', '5', '6']
>>> f.seek(0)
>>> for row in c: print row # again
['1', '2', '3']
['4', '5', '6']
您仍然可以使用file.seek(0)。例如,看看下面的內容:
import csv
file_handle = open("somefile.csv", "r")
reader = csv.reader(file_handle)
# Do stuff with reader
file_handle.seek(0)
# Do more stuff with reader as it is back at the beginning now
這應該工作,因爲csv.reader是一樣的。
謝謝:)很多 – Nope 2009-01-10 21:24:54
althought的file_handle.seek(0)不工作時,reader.line_num數沒有得到恢復,所以如果你想使用這個以後,你就會有問題。你當然可以在seek(0)之後重複'reader = csv.reader(file_handle)',但是如果你在'reader:'循環的外部'read.line_num' '不增加。如果用一段時間替換for循環,可以解決該問題,但不太清楚在最後一次讀取時如何清理文件結束的情況。 – jacanterbury 2013-05-29 15:16:35