Python:CSV 模块。 EscapeChar 搞乱了输出

问题描述 投票:0回答:2

尝试打开包含引号的 CSV 并将其删除。我查看了 python 的 CSV 模块的文档,它按照我想要的方式删除了引号,但输出试图转义逗号,这是我试图避免的。此代码:

csv.register_dialect('escaped',delimiter=",", escapechar="\\",  quoting=csv.QUOTE_NONE)
reader = csv.reader(open(input_file, "rb"), skipinitialspace=True)
writer = csv.writer(open(output_file, "wb"), dialect='escaped')

writer.writerows(reader)

输出结果如下 value1\,value2。如何去掉反斜杠,这样输出中就只剩下逗号了。输入文件包含一堆看起来像这样的行:

"Value1,Value2"
python csv escaping
2个回答
3
投票

您观察到的行为与文档所说关于

QUOTE_NONE

的内容一致

如果您想做的只是去掉引号,并且考虑到输入行与您在评论中提到的一样简单,这行不通吗?

with open('input') as in_file, open('output', 'w') as out_file:
    for line in in_file:
        out_file.write(line.replace('\"', ''))

0
投票

尝试使用 ' ' 作为转义字符:

with open('dmy.tmp','w') as f:
    writer=csv.writer(f,escapechar='\7',quoting=csv.QUOTE_NONE)
    content=[['a','b','c'],[1,2,3]]
    writer.writerows(content)
© www.soinside.com 2019 - 2024. All rights reserved.