从csv行中删除双引号

时间:2016-10-05 01:26:38

标签: python python-3.x csv

我有两个文件: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')])

有什么建议吗?

2 个答案:

答案 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必须添加"",因为你有,个这个字符串。