61

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

string1 = "Hello \n World"
string2 = string1.strip('\n')
print string2

而且我仍然在输出中看到换行符。我也尝试过 rstrip ,但我仍然看到换行符。谁能解释我为什么做错了?谢谢。

4

8 回答 8

95

strip仅删除字符串开头和结尾的字符。你想使用replace

str2 = str.replace("\n", "")
re.sub('\s{2,}', ' ', str) # To remove more than one space 
于 2012-11-08T22:25:10.510 回答
27

正如@john 所提到的,最可靠的答案是:

string = "a\nb\rv"
new_string = " ".join(string.splitlines())
于 2018-08-30T01:45:52.417 回答
5

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

with open('verdict.txt') as f: 

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

alist = f.read().splitlines()
jalist = " ".join(alist)

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

atext = f.read().replace('\n',' ')

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

于 2016-04-06T22:41:22.003 回答
3

strip()删除前导和尾随空格后返回字符串。见文档

在您的情况下,您可能想尝试replace()

string2 = string1.replace('\n', '')
于 2012-11-08T22:28:10.533 回答
2

或者你可以试试这个:

string1 = 'Hello \n World'
tmp = string1.split()
string2 = ' '.join(tmp)
于 2012-11-08T23:20:37.140 回答
1

这应该在许多情况下都有效 -

text = ' '.join([line.strip() for line in text.strip().splitlines() if line.strip()])
text = re.sub('[\r\n]+', ' ', text)
于 2021-03-17T08:26:02.667 回答
-1

strip()返回删除了前导和尾随空格(默认情况下)的字符串。

所以它会变成" Hello World ""Hello World"但它不会删除 \n 字符,因为它存在于字符串之间。

尝试替换()

str = "Hello \n World"
str2 = str.replace('\n', '')
print str2
于 2012-11-08T22:32:19.780 回答
-1

如果文件在文本中间包含换行符,strip()rstrip()不会解决问题,

strip 系列用于从字符串的开头和结尾修剪

replace()是解决你问题的方法

>>> my_name = "Landon\nWO"
>>> print my_name
   Landon
   WO

>>> my_name = my_name.replace('\n','')
>>> print my_name
LandonWO
于 2016-02-05T12:38:20.260 回答