我有两个文件:src.csv和dst.csv。下面的代码从src.csv读取第二行并将其附加到dst.csv。问题是dst.csv中的输出包含在双引号(“”)中。
预期结果:
10, 5, 5, 10, 1
输出:
"10, 5, 5, 10, 1"
我已经尝试在csv.writer中使用quoting=csv.QUOTE_NONE, escapechar=' '
,虽然输出现在在每个csv值之后包含一个空格,但确实会删除引号。
这是我的代码:
import csv
with open('src.csv', 'r') as src, open('dst.csv', 'a', newline='') as dst:
wr = csv.writer(dst, dialect='excel', delimiter=',', quoting=csv.QUOTE_NONE, escapechar=' ')
next(src)
for row in src:
wr.writerow([row.rstrip('\n')])
有什么建议吗?
答案 0 :(得分:2)
您不会将源文件行拆分为列,因此您最终只编写了1列csv。改为使用读者:
import csv
with open('src.csv', 'r') as src, open('dst.csv', 'a', newline='') as dst:
wr = csv.writer(dst, dialect='excel', delimiter=',', quoting=csv.QUOTE_NONE, escapechar=' ')
next(src)
reader = csv.reader(src)
for row in reader:
wr.writerow(row)
答案 1 :(得分:0)
我认为你必须使用csv.reader()
来读取行作为数字列表 - 现在你将行读作一个字符串而csv.writer必须添加""
,因为你有,
个这个字符串。