CSV删除字段值换行引号

时间:2012-07-07 05:16:09

标签: python csv file-io double-quotes

我正在尝试将列表写入csv,但是当我这样做时,我会在字段值周围得到包装引号:

number1,number2
"1234,2345"
"1235.7890"
"2345.5687"

使用此代码:

with open('C:\\temp\\test.csv', 'wb') as out_file:
...     csv_writer = csv.writer(out_file, delimiter=',')
...     csv_writer.writerow(('number1','number2'))
...     for f in myList:
...         csv_writer.writerow(f)

经过进一步研究,我发现您可以使用以下命令删除引号的写作:

  

quotechar ='',quoting = csv.QUOTE_NONE **

当我将此应用于我的代码时,我收到此错误:

  

回溯(最近一次调用最后一次):文件“”,行   4,错误:需要转义,但没有escapechar设置

with open('C:\\temp\\test.csv', 'wb') as out_file:
...     csv_writer = csv.writer(out_file, delimiter=',',quotechar='', quoting=csv.QUOTE_NONE)
        csv_writer.writerow(('number1','number2'))
...     for f in myList:
...         csv_writer.writerow(f)

如何删除这些引号?

修改

myList看起来像是:

     [['1234,2345'], ['1235,7890'], ['2345,5687']]

1 个答案:

答案 0 :(得分:7)

列表中的内容不是数字,而是文本,甚至包含分隔符。这意味着将其导出为csv必须进行转义。

如果要将数据正确写入,则需要先将数据转换为数字,然后再将其导出到csv。

编辑:另一方面,你的数据看起来好像是逗号分隔值 - 为什么不在不使用csv编写器的情况下将其直接写入文件?