我有两个for循环,第一个循环通过csv阅读器,第二个循环通过csv阅读器。打印结果时,我看到第一个从第一行开始,第二个从第二行开始,我不知道为什么,因为这是一个新循环。当我注释掉第一行时,第二行通常从第一行开始。代码如下:
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
您正在读取同一个打开的文件对象,因此第一个
headerReaderReader = csv.reader(csvFile)
从第一个未读行开始,而headerReaderDict = csv.DictReader(csvFile)
从下一个未读行开始。如果您将它们重新排序为然后
headerReaderReader
将从第二行开始,而headerReaderDict
将从第一行开始如果确实需要打开同一文件的两个副本,则需要维护两个不同的对象,以避免共享同一指针:
相关问题 更多 >
编程相关推荐