您是在第一次迭代时读取了整个文件,因此第二次读取时没有什么可剩下的。由于您似乎没有第二次使用csv数据,因此计算行数并第二次仅遍历该范围会更简单。
import csv
from itertools import count
with open('MySpreadsheet.csv', 'rU') as f:
reader = csv.DictReader(f, dialect=csv.excel)
row_count = count(1)
for row in reader:
next(count)
print(row)
for i in range(row_count):
print('Stack Overflow')
如果您需要再次遍历原始csv数据,则再次打开文件很简单。最有可能的是,您应该遍历第一次存储的某些数据,而不是再次读取文件。
with open('MySpreadsheet.csv', 'rU') as f:
reader = csv.DictReader(f, dialect=csv.excel)
for row in reader:
print(row)
with open('MySpreadsheet.csv', 'rU') as f:
reader = csv.DictReader(f, dialect=csv.excel)
for row in reader:
print('Stack Overflow')
如果您不想再次打开文件,则可以查找到开头,跳过标题,然后再次进行迭代。
with open('MySpreadsheet.csv', 'rU') as f:
reader = csv.DictReader(f, dialect=csv.excel)
for row in reader:
print(row)
f.seek(0)
next(reader)
for row in reader:
print('Stack Overflow')