我有几个如下所示的 CSV 文件:
Input
Name Code
blackberry 1
wineberry 2
rasberry 1
blueberry 1
mulberry 2
我想向所有 CSV 文件添加一个新列,这样它看起来像这样:
Output
Name Code Berry
blackberry 1 blackberry
wineberry 2 wineberry
rasberry 1 rasberry
blueberry 1 blueberry
mulberry 2 mulberry
到目前为止我的脚本是这样的:
import csv
with open(input.csv,'r') as csvinput:
with open(output.csv, 'w') as csvoutput:
writer = csv.writer(csvoutput)
for row in csv.reader(csvinput):
writer.writerow(row+['Berry'])
(蟒蛇 3.2)
但在输出中,脚本跳过了每一行,新列中只有 Berry:
Output
Name Code Berry
blackberry 1 Berry
wineberry 2 Berry
rasberry 1 Berry
blueberry 1 Berry
mulberry 2 Berry
原文由 fairyberry 发布,翻译遵循 CC BY-SA 4.0 许可协议
这应该让您知道该怎么做:
编辑,注意在 py3k 中你必须使用
next(r)
感谢您接受答案。在这里你有一个奖励(你的工作脚本):
请注意
lineterminator
中的参数csv.writer
。默认情况下它设置为'\r\n'
这就是为什么你有双倍间距。writerows
一次性写入它们。如果您的文件非常非常大,这可能不是一个好主意(RAM),但对于普通文件,我认为它更快,因为 I/O 更少。with
语句,而是可以在同一行中进行:使用 open(‘C:/test/test.csv’,‘r’) 作为 csvinput,open(‘C:/test/output.csv’, ‘w’) 作为 csvoutput: