2009-01-10 119 views

回答

62

您可以直接搜索文件。例如:

>>> 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'] 
10

您仍然可以使用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是一樣的。

+0

謝謝:)很多 – Nope 2009-01-10 21:24:54

+8

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