[英]Python: read CSV row by row and create a file per row
基本上我想阅读我的 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()
我错过了什么?
我看到您正在对spamreader
的每个元素使用for
循环。 在这种情况下,您的spamreader
是一个列表,因此如果您使用spamreader[5]
创建一个文件,您每次都会得到相同的值,因为您每次都在open()
中使用列表的第 6 个元素。
同样在(open(spamreader[5], "a")
中使用append
) 如果文件不存在,则将创建该文件,如果存在,则将其简单地添加到其内容的末尾。
因此,总而言之,您每次都打开同一个文件,因为您在for
循环中使用spamreader[5]
,并且每次都是相同的值。
我的猜测是你想在open()
中使用row
而不是spamreader
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.