我正在尝试从字符串中删除所有换行符。我已经阅读了如何做到这一点,但似乎由于某种原因我无法这样做。这是我正在做的一步一步:
string1 = "Hello \n World"
string2 = string1.strip('\n')
print string2
而且我仍然在输出中看到换行符。我也尝试过 rstrip ,但我仍然看到换行符。谁能解释我为什么做错了?谢谢。
我正在尝试从字符串中删除所有换行符。我已经阅读了如何做到这一点,但似乎由于某种原因我无法这样做。这是我正在做的一步一步:
string1 = "Hello \n World"
string2 = string1.strip('\n')
print string2
而且我仍然在输出中看到换行符。我也尝试过 rstrip ,但我仍然看到换行符。谁能解释我为什么做错了?谢谢。
strip
仅删除字符串开头和结尾的字符。你想使用replace
:
str2 = str.replace("\n", "")
re.sub('\s{2,}', ' ', str) # To remove more than one space
正如@john 所提到的,最可靠的答案是:
string = "a\nb\rv"
new_string = " ".join(string.splitlines())
因为我最近在从文件中读取文本时遇到了同样的问题,所以回答得很晚;尝试了几种选择,例如:
with open('verdict.txt') as f:
下面的第一个选项生成一个名为 的列表alist
,'\n'
剥离后,然后连接回全文(如果您希望只有一个文本,则可选):
alist = f.read().splitlines()
jalist = " ".join(alist)
下面的第二个选项更容易和简单地产生称为用空格atext
替换的文本字符串;'\n'
atext = f.read().replace('\n',' ')
有用; 我已经做了。这是干净、简单和高效的。
或者你可以试试这个:
string1 = 'Hello \n World'
tmp = string1.split()
string2 = ' '.join(tmp)
这应该在许多情况下都有效 -
text = ' '.join([line.strip() for line in text.strip().splitlines() if line.strip()])
text = re.sub('[\r\n]+', ' ', text)
如果文件在文本中间包含换行符,strip()
也rstrip()
不会解决问题,
strip 系列用于从字符串的开头和结尾修剪
replace()
是解决你问题的方法
>>> my_name = "Landon\nWO"
>>> print my_name
Landon
WO
>>> my_name = my_name.replace('\n','')
>>> print my_name
LandonWO