我正在嘗試同時讀取兩個 csv 檔案并使用多列中每一列的變數。我已經嘗試了所有方法并搜索了所有內容,但沒有運氣。這是我糟糕的代碼:
with open("test1.csv","r",encoding="utf-8") as f, open("test2.csv","r",encoding="utf-8") as g:
fieldnames = ['username', 'password']
fieldnames2 = ['title', 'afflink']
rdr1 = csv.DictReader(f, delimiter=',', fieldnames=fieldnames)
rdr2 = csv.DictReader(g, delimiter=',', fieldnames=fieldnames2)
for row in rdr1:
for row in rdr2:
print(username, title)
time.sleep(1)
uj5u.com熱心網友回復:
您的嵌套回圈可能不會執行您想要的操作,盡管您實際上并沒有告訴我們您想要什么。內回圈將消耗第二個檔案中的所有資料,然后繼續讀取第一個檔案的第二行,但是您不能再次回圈第二個檔案(除非您關閉并重新打開并從頭開始) . 可能您想一次讀取一行。
with open("test1.csv","r",encoding="utf-8") as f, open("test2.csv","r",encoding="utf-8") as g:
# Fixed broken indentation here
fieldnames = ['username', 'password']
fieldnames2 = ['title', 'afflink']
rdr1 = csv.DictReader(f, delimiter=',', fieldnames=fieldnames)
rdr2 = csv.DictReader(g, delimiter=',', fieldnames=fieldnames2)
for d1, d2 in zip(rdr1, rdr2):
print(d1['username'], d2['title'])
如果您的現實回圈比這更復雜,也許可以將字典與d1.update(d2). 這里的主要問題是觀察到 DictReader 物件回傳字典(您必須使用dict['key'],而不是key檢索 的值key)并且您可以使用它zip來回圈值對。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/366861.html
