我有以下字符串:
string = """
Hello World
123
HelloWorld
"""
我想清除python中字符串的所有换行符。
我试过
string.strip()
但它并没有按照预期运作。
我应该做什么?
我正在使用python 3.3
感谢。
答案 0 :(得分:11)
str.strip
从字符串的开头和结尾删除空格。
>>> string
'\nHello World\n123\nHelloWorld\n'
>>> string.strip()
'Hello World\n123\nHelloWorld'
如果要删除字符串中的新行字符,可以使用str.replace
替换其他字符:
>>> string.replace('\n', ' ')
' Hello World 123 HelloWorld '
答案 1 :(得分:8)
我想指出,根据三重字符串的使用方式,您可以完全避免这个问题。
在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
答案 2 :(得分:4)
使用translate
代替replace
进行此类操作。
>> string.translate(None, "\n")
Hello World123HelloWorld
您将了解使用大文件时fast translate的用法。
答案 3 :(得分:1)
简单str.replace
:
string.replace('\n', ' ')
答案 4 :(得分:0)
主要问题已经得到解答,但我想补充一点,如果您计划使用使用各行,那么最好不要这样做 -
string = """
Hello World
123
HelloWorld
"""
for line in string.strip().split('\n'):
print(line)
# do something with the line
从上面的代码输出 -
Hello World
123
HelloWorld