Python逐行读取CSV并为每行生成独立文本文件的问题排查
代码问题分析
- CSV分隔符配置错误:你的CSV样本是逗号
,分隔字段,但代码中csv.reader设置的delimiter=' '是按空格分割,会导致整行内容被识别为单个字段,无法正确拆分数据。 - 循环内索引对象错误:你在
for row in spamreader循环中,取值用的是spamreader[索引],spamreader是整个CSV所有行组成的列表,该写法每次取的都是整个CSV的固定行数据,而非当前遍历的行,正确应该用循环变量row来取当前行的字段。 - 文件打开模式不合理:你用了
a追加模式,如果重复运行代码内容会不断追加到同一文件中,按需求创建新文件建议用w覆盖模式,更符合预期。
修正后代码
import csv # 可根据实际需求调整CSV文件路径 with open('labels_grenouilles.csv', newline='', encoding='utf-8') as csvfile: # 分隔符改为逗号匹配你的CSV格式 spamreader = csv.reader(csvfile, delimiter=',', quotechar='|') for row in spamreader: # 跳过空行避免报错 if not row: continue # 用当前行的第6个字段(索引从0开始计数对应索引5)作为文件名 filename = f"{row[5]}.txt" # 用with语法自动管理文件句柄无需手动调用close with open(filename, 'w', encoding='utf-8') as f: # 写入前5个字段,用空格分隔 f.write(' '.join(row[:5]))
内容的提问来源于stack exchange,提问作者J.erome
相关产品推荐
相关产品推荐

