【问题标题】:Remove double quotes from csv row从 csv 行中删除双引号
【发布时间】:2017-02-13 07:35:03
【问题描述】:

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

有什么建议吗?

【问题讨论】:

  • 只需使用wr.writerow(row)
  • 改变这个给出:1,0, ,,5, ,,5, ,,1,0, ,,1,
  • 你一定没有按照我的意思去做。请参阅@tdelaney 的answer

标签: python python-3.x csv


【解决方案1】:

您没有将源文件行拆分为列,因此您最终只编写了一个 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)

【讨论】:

    【解决方案2】:

    我认为您必须使用 csv.reader() 将行读取为数字列表 - 现在您将行读取为一个字符串,并且 csv.writer 必须添加 "" 因为您在此字符串中有 ,

    【讨论】:

      猜你喜欢
      • 2014-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 2015-07-26
      • 2013-08-27
      相关资源
      最近更新 更多