簡體   English   中英

Python - 為什么第二個 for 循環從第二行開始

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM