0
我有一個簡單的測試CSV文件:Python的CSV讀者無法尋求到線路
1,2,3
4,5,6
7,8,9
10,11,12
我想讀前兩行,求回一條線,並重新讀取下一行:
import csv
with open('test.csv', 'r') as f:
reader = csv.reader(f)
pos = f.tell()
print 'pos: {0}'.format(pos)
print reader.next()
pos = f.tell()
print 'pos: {0}'.format(pos)
print reader.next()
f.seek(pos)
pos = f.tell()
print 'pos: {0}'.format(pos)
print reader.next()
pos = f.tell()
print 'pos: {0}'.format(pos)
然而,該文件被完全在第一次調用讀next()
:
pos: 0
['1', '2', '3']
pos: 27
['4', '5', '6']
pos: 27
Traceback (most recent call last):
File "<stdin>", line 15, in <module>
StopIteration
我TRIE d設置爲buffering=0
,但出現同樣的問題。如果我明確使用文件對象來執行readline()
,那麼一切正常。有什麼辦法可以防止csv閱讀器在第一個next()
調用中多行讀取?