Python-为什么第二个for循环从第二行开始

问题描述 投票:0回答:1

所以我有这两个for循环,第一个循环通过csv阅读器,第二个循环通过csv DictReader。当打印结果时,我看到第一行从第一行开始,第二行从第二行开始,我不知道为什么,因为这是一个新循环。当我注释掉第一行时,第二行通常从第一行开始。这是代码:

csvFile = open('contactscsv.csv', 'r')
headerReaderReader = csv.reader(csvFile)
headerReaderDict = csv.DictReader(csvFile)

for row in headerReaderReader:
    print(row)
    break

for row in headerReaderDict:
    print(row)
    break

python python-3.x
1个回答
0
投票

您正在从同一个打开的文件对象中读取,因此您的第一个headerReaderReader = csv.reader(csvFile)从第一个未读行开始,而headerReaderDict = csv.DictReader(csvFile)从下一个未读行开始。如果您将它们重新排序为

headerReaderDict = csv.DictReader(csvFile)
headerReaderReader = csv.reader(csvFile)

for row in headerReaderReader:
    print(row)
    break

for row in headerReaderDict:
    print(row)
    break

然后headerReaderReader从第二行开始,headerReaderDict从第一行开始。

© www.soinside.com 2019 - 2024. All rights reserved.