我知道在Python中,在多行上拆分代码的首选机制是使用带括号等结构的隐式延续。或者,也可以使用反斜杠。
但是,我遇到了长写语句问题(示例代码):
f1 = some_file_name
with open(f1,'w') as o:
# file in csv format
# want to write a header before data
o.write("column1 header,column2 header,column3 header,column4 header,etc")
如果我打破界限,Python就会抱怨(' EOL,同时扫描字符串文字'):
o.write("column1 header,column2 header,column3 header, # complains
column4 header,column5 header")
如果我使用反斜杠并尝试保持相同的缩进级别,则文件头中会包含额外的空格:
o.write("column1 header,column2 header,column3 header,\
column4 header,column5 header")
# file contents:
column1 header,column2 header,column3 header, column4 header,column5 header
现在我有一个反斜杠,剩下的字符串从下一行的开头开始,但代码看起来很麻烦。
我可能遗漏了一些非常明显的东西,但在写这样的文件时,处理长字符串的首选方法是什么?
答案 0 :(得分:4)
Python允许您执行以下操作:
o.write("column1 header,column2 header,column3 header,"
"column4 header,column5 header")
通过连接这些字符串,这将创建一个没有任何换行符的字符串。
反斜杠无法提供正确结果的原因是因为字符串中的空格很重要:
o.write("column1 header,column2 header,column3 header,\
column4 header,column5 header")
^^^^^
These spaces end up in the string.