清理用于在Python中将长字符串写入文件的代码

时间:2015-11-18 19:08:38

标签: python string line

我知道在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

现在我有一个反斜杠,剩下的字符串从下一行的开头开始,但代码看起来很麻烦。

我可能遗漏了一些非常明显的东西,但在写这样的文件时,处理长字符串的首选方法是什么?

1 个答案:

答案 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.