web-dev-qa-db-ja.com

Python csv.reader:ファイルの先頭に戻るにはどうすればよいですか?

Csv.readerを使用してファイルを移動しているときに、ファイルの先頭に戻る方法を教えてください。通常のファイルを使用してそれを行っていた場合、「file.seek(0)」のようなことができます。 csvモジュールにはそのようなものがありますか?

事前に感謝します;)

47
Nope

ファイルを直接シークできます。例えば:

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

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は同じものを使用しているため、これは機能するはずです。

13
Evan Fosmark