我正在尝试从一个字符串中删除所有的换行符。我已经了解了如何做到这一点,但似乎由于某种原因我无法做到。以下是我所做的步骤:
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())
\n
。 - static_null由于我最近在从文件中读取文本时遇到相同的问题,所以现在回答晚了。我尝试了几个选项,例如:
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
str
并不一定是一个好主意,因为str
是一个内置函数。 - Nadir Sampaoli