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