将字符串写入 CSV 时转义逗号

Posted

技术标签:

【中文标题】将字符串写入 CSV 时转义逗号【英文标题】:Escape commas when writing string to CSV 【发布时间】:2019-04-08 20:53:06 【问题描述】:

我需要使用 Python 在 CSV 文件中添加一个包含逗号的字符串。有人说将字符串括在双引号中会转义其中的逗号。这不起作用。如何在不将逗号识别为分隔符的情况下编写此字符串?

string = "WORD;WORD 45,90;WORD 45,90;END;"
with open('doc.csv') as f:
    prepended = string + '\n' + f.read()
with open('doc.csv', 'w') as f:
    f.write(prepended)

【问题讨论】:

我会使用模块 csv 但你可以在 ' ' - string = 'WORD;"WORD 45,90";"WORD 45,90";END;' 中使用 " " 【参考方案1】:

正如您所指出的,您通常可以如下引用字符串。读取这些文件的系统是否无法识别该语法?如果您使用 python 的 csv 模块,它将处理正确的转义:

with open('output.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerows(myIterable, quoting=csv.QUOTE_ALL)

引用的字符串如下所示:

"string1","string 2, with, commas"

请注意,如果您的字符串中有引号字符,它将被写为""(连续两个引号字符):

"string1","string 2, with, commas, and "" a quote"

【讨论】:

以上是关于将字符串写入 CSV 时转义逗号的主要内容,如果未能解决你的问题,请参考以下文章

php解析csv时,特定汉字会导致逗号识别不出来

将html字符串写入csv文件

Python CSV 解析,转义引号字符

说说如何利用 Python 处理 CSV 文件

在创建 csv 文件时,Blob 在打字稿中附加逗号

excel另存为csv打开后有大量逗号是怎么回事?