删除 来自 python 中的三重引号字符串

问题描述 投票:0回答:5

我有以下字符串:

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

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

我试过了

string.strip()

但它没有按预期工作。

我应该做什么?

我使用的是python 3.3

谢谢。

python string python-3.x strip
5个回答
22
投票

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

在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

11
投票

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

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

如果您想删除字符串中inside的新行字符,您可以使用

str.replace
:

将其替换为其他字符
>>> string.replace('\n', ' ')
' Hello World 123 HelloWorld '

5
投票

此类操作请使用

translate
代替
replace

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

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


0
投票
str.replace


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



0
投票
使用

单独的线路,您可能最好这样做 - string = """ Hello World 123 HelloWorld """ for line in string.strip().split('\n'): print(line) # do something with the line

上面代码的
输出

- Hello World 123 HelloWorld

© www.soinside.com 2019 - 2024. All rights reserved.