从字符串内删除所有换行符

Lan*_*nWO 36 python string newline substitution

我正在尝试从字符串中删除所有换行符.我已经读过如何做到这一点,但似乎我出于某种原因无法这样做.这是我正在做的一步一步:

string1 = "Hello \n World"
string2 = string1.strip('\n')
print string2
Run Code Online (Sandbox Code Playgroud)

我仍然在输出中看到换行符.我也尝试过使用rstrip,但我仍然看到换行符.谁能解释为什么我这样做错了?谢谢.

mip*_*adi 57

strip仅从字符串的开头或结尾删除字符.你想用replace:

str2 = str.replace("\n", "")
Run Code Online (Sandbox Code Playgroud)

  • 我认为 [strip()](https://docs.python.org/2/library/stdtypes.html#str.strip) 从字符串的开头 **AND** 结尾删除了字符。 (2认同)

Chr*_*ell 8

如@john所述,最可靠的答案是:

string = "a\nb\rv"
new_string = " ".join(string.splitlines())
Run Code Online (Sandbox Code Playgroud)


小智 7

回答晚了,因为我最近在从文件中读取文本时遇到了同样的问题;尝试了几种选择,例如:

with open('verdict.txt') as f: 
Run Code Online (Sandbox Code Playgroud)

下面的第一个选项生成一个名为 的列表alist,并'\n'进行剥离,然后连接回全文(如果您只想只有一个文本,则可选):

alist = f.read().splitlines()
jalist = " ".join(alist)
Run Code Online (Sandbox Code Playgroud)

下面的第二个选项更容易且简单地生成称为用空格atext替换的文本字符串;'\n'

atext = f.read().replace('\n',' ')
Run Code Online (Sandbox Code Playgroud)

有用; 我已经做了。这是干净、简单、高效的。