[英]Python - Why does the second for loop start from the second row
所以我有這兩個 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
您正在從同一個打開的文件 object 中讀取,因此您的第一個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
將從第一行開始。
如果你真的需要打開同一個文件的 2 個副本,你將需要維護 2 個不同的對象以避免共享相同的指針:
with open('contactscsv.csv', 'r') as csv1, open('contactscsv.csv', 'r') as csv2:
headerReaderReader = csv.reader(csv1)
headerReaderDict = csv.DictReader(csv2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.