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

如何在Python的CSV文件中保留引号?,python,csv,double-quotes,quoting,Python,Csv,Double Quotes,Quoting,你好, 在编写CSV时,我遇到了正确引用的问题。我想用内置的Python CSV库编写一个CSV文件。我的代码如下: 打开('test.csv',mode='w',newline='')作为csv\u文件: csv_writer=csv.writer(csv_文件,分隔符=',',转义字符=''”,引号=csv.QUOTE_无) csv_writer.writerow(['1','0','Maker','Tamas Nemes'])) csv_writer.writerow(['2','0','

你好,

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

打开('test.csv',mode='w',newline='')作为csv\u文件:
csv_writer=csv.writer(csv_文件,分隔符=',',转义字符=''”,引号=csv.QUOTE_无)
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格式

但您可以通过将转义字符设置为空格(“”)来接近所需内容

这将导致:

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

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

您尝试创建的不是标准的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")


现有的输出是正确的。如果您不想让引号加倍以表明它们是文字而不是语法,那么您想要的不是真正的CSV……也就是说,如果您想说服Python
CSV.writer
生成以这种方式发散的内容,那么选择一个完全不同的转义字符如何(通过修改escapechar)?当输入中出现该字符时,该字符将加倍,或者在包含逗号的字符串前后添加,但引号将被保留。或者,当然,您不能使用
csv.writer
,因为您实际上不希望生成它生成的文件格式。为什么要在
Tamas-Nemes
如果不想将它们放入CSV文件中,请使用
CSV\u writer.writerow(['1','0','Maker','Tamas Nemes'])
没有显式的双引号。@CharlesDuffy我想要CSV,因为我试图编辑fourmilab的MIDI-CSV程序生成的CSV文件。在这种CSV中,MIDI文件的所有属性都在文件的单独行中。一些属性,例如Marker\u t或Title\u t,需要带引号的字符串,例如:
0,1,Marker\u t,”(c)Tamas Nemes 2019“
这就是为什么我希望它看起来像那样。否则文件会损坏,无法再次转换为MIDI。