Python:CSV模块。EscapeChar影响输出
我想打开一个包含引号的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"
2 个回答
0
试着用 '\7' 作为转义字符:
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)
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('\"', ''))