假设输入.csv有一行是这样的:
1,2,3,4,5
假设输出.csv为空,但我希望它包含
numbers:,1,2,3,4,5
我会使用以下代码:
with open('output.csv', 'w') as out:
wr = csv.writer(out, delimiter=',', lineterminator = 'n')
with open('input.csv',"rt") as in:
for line in csv.reader(in, delimiter=','):
wr.writerow(['numbers:',line])
但是,当我这样做时,output.csv 包含:
numbers:,"[1,2,3,4,5]"
我做错了什么?
writerow
获取一个数组并将该数组的每个元素写入CSV文件。您传递了两个值:"numbers:"和从另一个文件中读取的内容数组。就像你这样称呼的:
w.writerow(['a', ['b', 'c', 'd']])
其中写道:a,"['b', 'c', 'd']"
.
你只想要wr.writerow(line)
我认为您想将"数字:"和原始文件中的行合并到一个列表中。为此,您可以使用列表串联。我会通过以下方式重写脚本的最后一行:
row = ['numbers:'] + line
wr.writerow(row)