首页 > 解决方案 > For-loop-nested-in-for-loop 通过 csv.reader() 但外循环只经过一次?

问题描述

import csv
import numpy as np

with open("D:\PHD\obranking\\demo.csv", mode='r') as csv_file:
    csv_reader=csv.DictReader(csv_file)

    for i, row in enumerate(csv_reader):
        for j, line in enumerate(csv_reader):
            print(i)
            print(j)

标签: pythoncsv

解决方案


csv.reader(...)返回一个可耗尽的迭代器。您必须将行存储在允许多轮迭代的数据结构中,例如list

with open("..demo.csv") as csv1, open("..demo.csv") as csv2:
    reader1 = csv.DictReader(csv1)
    reader2 = csv.DictReader(csv2)

    for i, row in enumerate(reader1):
        for j, line in enumerate(reader2):
            # do stuff
        csv2.seek(0)  # reset file handle to start

推荐阅读