【问题标题】:Remove \n from triple quoted string in python从python中的三重引号字符串中删除\ n
【发布时间】:2013-11-03 18:56:38
【问题描述】:

我有以下字符串:

string = """
Hello World
123
HelloWorld
"""

我想清除python中字符串中的所有换行符。

我试过了

string.strip()

但它没有按预期工作。

我该怎么办?

我正在使用 python 3.3

谢谢。

【问题讨论】:

  • string.replace('\n', '') 不工作?

标签: python string python-3.x strip


【解决方案1】:

我想指出,根据三引号字符串的使用方式,您可以完全避免该问题。

在 Python 三引号字符串中,您可以在行尾放置反斜杠 ("\") 以忽略换行符。换句话说,您可以使用它在代码中的该位置放置换行符,而无需在字符串中进行换行符。

例如:

"""line 1 \
line 2 \
line 3"""

实际上会变成

line 1 line 2 line 3

如果打印或写入某个文件或其他输出。

以这种方式使用它可以消除对替换换行符的函数的需求,使您的代码更清晰。

编辑:

如果您使用这样的反斜杠续行符,您也可以以同样的方式使用简单的单引号字符串;

"line 1 \
line 2 \
line 3"

也等价于

line 1 line 2 line 3

【讨论】:

  • 为什么需要三引号和反斜杠?为什么不只是反斜杠?
  • @AllDaniSpringer 你也可以做一个单引号字符串,它的工作方式是一样的;我只保留了三​​重引号,因为这就是问题所在。不过,我会进行编辑以提及这一点。
【解决方案2】:

str.strip 删除字符串开头和结尾的空格。

>>> string
'\nHello World\n123\nHelloWorld\n'
>>> string.strip()
'Hello World\n123\nHelloWorld'

如果要删除字符串的换行符,可以使用str.replace替换它们:

>>> string.replace('\n', ' ')
' Hello World 123 HelloWorld '

【讨论】:

    【解决方案3】:

    使用translate 而不是replace 进行这种操作。

    >> string.translate(None, "\n")
    Hello World123HelloWorld
    

    当您处理大文件时,您会意识到fast translate 的作用。

    【讨论】:

      【解决方案4】:

      简单str.replace:

      string.replace('\n', ' ')
      

      【讨论】:

        【解决方案5】:

        主要问题已经得到解答,但我想补充一点,如果您打算使用单独的行,您最好这样做 -

        string = """
        Hello World
        123
        HelloWorld
        """
        for line in string.strip().split('\n'):
            print(line)
            # do something with the line
        
        上述代码的

        输出 -

        Hello World
        123
        HelloWorld
        

        【讨论】:

        • 这和print(string.strip())没有什么不同。
        • 但是如果他想使用单独的行怎么办?
        • 那将是一个不同的问题,问题中没有任何内容表明 OP 想要这样做。
        • 我只是想展示另一种方法,同时描述它的具体用途。部分答案。
        猜你喜欢
        • 2017-04-18
        • 1970-01-01
        • 2014-02-16
        • 1970-01-01
        • 1970-01-01
        • 2021-02-26
        • 1970-01-01
        • 2017-09-24
        • 2015-09-14
        相关资源
        最近更新 更多