如何在 Python 的 CSV 文件中保留引号?

How to keep quotes in CSV-Files in Python?

你好,

我在编写 CSV 时遇到正确引号的问题。我想用内置的 Python-CSV-library 写一个 CSV 文件。我的代码如下:

with open('test.csv', mode = 'w', newline = '') as csv_file:
    csv_writer = csv.writer(csv_file, delimiter = ',', escapechar = '"', quoting = csv.QUOTE_NONE)

    csv_writer.writerow(['1', ' 0', ' Maker', ' "Tamas Nemes"'])
    csv_writer.writerow(['2', ' 0', ' Title', ' "A CSV file"'])

我为烧写器尝试了很多不同的参数设置,但我总是这样结束:

1, 0, Maker, ""Tamas Nemes""
2, 0, Title, ""A CSV file""

有没有办法这样得到:

1, 0, Maker, "Tamas Nemes"
2, 0, Title, "A CSV file"

提前感谢您的帮助!

我无法发表评论,我同意@CharlesDuffy 你滥用 CSV 格式的做法。

但是您可以通过将转义字符设置为 space (" ")

来接近您想要的内容

这将导致:

1,  0,  Maker, "Tamas  Nemes "
2,  0,  Title, "A  CSV  file "

您的字符串用额外的 space 填充,但取决于您需要对它们执行的操作,这可能无关紧要。

您尝试创建的不是标准的 CSV 格式。您可以简单地连接所有字符串并编写它。

with open('test.csv', mode = 'w', newline = '') as csv_file:
    csv_file.write(",".join(['1', ' 0', ' Maker', ' "Tamas Nemes"']) + "\n")
    csv_file.write(",".join(['2', ' 0', ' Title', ' "A CSV file"']) + "\n")