2009-01-10 59 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