您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

循环csv.DictReader的行不止一次

循环csv.DictReader的行不止一次

您是在第一次迭代时读取了整个文件,因此第二次读取时没有什么可剩下的。由于您似乎没有第二次使用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')
其他 2022/1/1 18:26:16 有470人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶