基本上我想讀取我的 CSV 并每行創建一個文本檔案。
我的 CSV 內容是:Grenouille,1139,287,252,164,2017-03-04-21_35_19.jpg,1920,1080
我已經完成了以下代碼:
import sys
import csv
with open('labels_grenouilles.csv', newline='') as csvfile:
spamreader = list(csv.reader(csvfile, delimiter=' ', quotechar='|'))
for row in spamreader:
f = open(str(spamreader[5]) ".txt", "a")
f.write(str(spamreader[0]) " " str(spamreader[1]) " " str(spamreader[2]) " " str(spamreader[3]) " " str(spamreader[4]))
f.close()
但不是每次創建一個新檔案時,它都會創建類似的內容:

我錯過了什么?
uj5u.com熱心網友回復:
我看到您正在for為spamreader. 在這種情況下,你spamreader是一個串列,所以如果你spamreader[5]用來創建一個檔案,你每次都會得到相同的值,因為你每次在open().
如果檔案不存在,也將append在(open(spamreader[5], "a")此使用將創建該檔案,或者如果存在則將簡單地添加到其內容的末尾。
因此,總而言之,您每次都打開同一個檔案,因為您spamreader[5]在for回圈中使用,并且每次都是相同的值。
我的猜測是你想使用rowinopen()而不是spamreader
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/376567.html
