【问题标题】:Writing a string (with new lines) in Python在 Python 中编写一个字符串(带有新行)
【发布时间】:2011-08-16 18:57:04
【问题描述】:

我必须在 Python 中为文件编写带有换行符和特定结构的字符串。当我这样做时

 stringtowrite = "abcd ||
                   efgh||
                   iklk"

f = open(save_dir + "/" +count+"_report.txt", "w")
f.write(stringtowrite)
f.close()

我收到此错误:

语法错误:扫描字符串时 EOL

如何在不删除新行的情况下将字符串原样写入文件?

【问题讨论】:

    标签: python


    【解决方案1】:

    您是否尝试过通过以下方式修改您的字符串:

    stringtowrite = "abcd ||\nefgh||\niklk"
    
    f = open(save_dir + os.path.sep +count+"_report.txt", "w")
    f.write(stringtowrite)
    f.close()
    

    或者:

    stringtowrite = """abcd ||
                       efgh||
                       iklk"""
    

    【讨论】:

      【解决方案2】:

      最简单的就是用python的三引号(注意三个单引号)

      stringtowrite = '''abcd ||
                         efgh||
                         iklk'''
      

      任何带有三引号的字符串文字都将在下一行继续。您可以使用 ''' 或 """。

      顺便说一句,如果你有

      a = abcd
      b = efgh
      c = iklk
      

      我会推荐以下内容:

      stringtowrite = "%s||\n%s||\n%s" % (a,b,c)
      

      作为一种更具可读性和 Pythonic 的方式。

      【讨论】:

      • 请注意,您还将使用它获得前导空格。
      • 否则您必须在一行中完成所有操作:'abcd ||\nefgh||\niklk'
      • 是的。一旦可行,我预计作者会进行进一步的数据格式调试。 :)
      【解决方案3】:

      可以在每行的末尾添加\字符,表示该行在下一行继续,可以用三引号代替单引号,也可以替换文字字符串中的换行符为\n

      【讨论】:

      • 在行尾添加续行 `\` 将嵌入换行符 - 它只会附加下一行的文本行。
      【解决方案4】:

      您可以在字符串中写入换行符 - \n

      stringtowrite = "abcd ||\nefgh||\niklk"
      

      【讨论】:

      • 实际上,我从中获取字符串数组的方法会吐出带有换行符的字符串。如何用 '\' 替换字符串数组中的每个换行符?
      • 如果已经有换行符,则无需添加它们 - 但是,我不知道您的设置。
      【解决方案5】:

      试试这个:

      stringtowrite = f"abcd ||\nefgh||\niklk"
      f = open(save_dir + "/" +count+"_report.txt", "w")
      f.write(stringtowrite)
      f.close()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-02
        • 2013-04-15
        • 1970-01-01
        • 2021-10-13
        • 1970-01-01
        • 2015-04-23
        • 2020-08-25
        • 1970-01-01
        相关资源
        最近更新 更多