4

我有以下字符串:

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

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

我试过了

string.strip()

但它没有按预期工作。

我该做什么?

我正在使用 python 3.3

谢谢。

4

5 回答 5

14

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

在 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
于 2015-10-26T20:12:05.390 回答
11

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

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

如果要删除字符串中的换行符可以使用其他内容替换它们str.replace

>>> string.replace('\n', ' ')
' Hello World 123 HelloWorld '
于 2013-11-03T19:00:03.340 回答
5

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

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

当您处理大文件时,您会意识到翻译的速度有多快。

于 2013-11-03T19:17:54.557 回答
0

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

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

上述代码的输出-

Hello World
123
HelloWorld
于 2013-11-03T19:12:16.770 回答
0

简单str.replace

string.replace('\n', ' ')
于 2013-11-03T18:58:48.490 回答