我正在尝试创建一个脚本以重新格式化.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'])