使用DictReader和DictWriter进行输出时,Python CSV写入输出错误

时间:2019-11-15 03:08:51

标签: python python-3.x

我正在尝试创建一个脚本以重新格式化.CSV文件。读取的文件以管道分隔符开始,并以逗号写入。

它所要做的就是索引这些列并将它们输出到我想要的文件中。

当将输出打印到屏幕上时,我能够使其完美工作(请参见代码底部的两条注释行),但是当我尝试写入文件时,我得到了following error。我试图以几种不同的方式更改csv_writer.writerow({'F3'})的格式。看来我并不完全了解如何使用writerow()。或者,如果我完全缺少某些东西来使其正常运行。

我还必须将静态字段放在索引字段的前面。 (即,我需要在F3字段前面放置一个“ 1”),这还有其他技巧吗?

import csv

csv.register_dialect('piper', delimiter='|')

with open('pbfile.txt', 'r') as csv_file:
    csv_reader = csv.DictReader(csv_file, dialect='piper',quoting=csv.QUOTE_MINIMAL)


with open('ouput2.csv', 'w', newline='') as new_file:
    fieldnames = ['F0','F1','F2','F3','F4','F5','F6']

    csv_writer = csv.DictWriter(new_file, delimiter=',',fieldnames=fieldnames)

    for line in csv_reader:
        #csv_writer.writeheader()
        csv_writer.writerow({'F3'})
        csv_writer.writerow({'F1', 'F2', 'F6'})
        #print('1', line['F3'])
        #print('380', line['F1'], line['F2'], line['F6'])

0 个答案:

没有答案