用于将长字符串写入 Python 中的文件的干净代码

Clean code for writing long strings to file in Python

我知道在 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 while scanning string literal'):

    o.write("column1 header,column2 header,column3 header, # complains
        column4 header,column5 header")

如果我使用反斜杠并尝试保持相同的缩进级别,额外的 space 将包含在文件头中:

    o.write("column1 header,column2 header,column3 header,\
        column4 header,column5 header")

    # file contents:
    column1 header,column2 header,column3 header,      column4 header,column5 header

现在我有一个反斜杠,剩余的字符串从下一行的最开始开始,但是这样代码看起来很乱。

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

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.