删除多行字符串Python中的行间距

时间:2013-07-11 11:23:16

标签: python formatting line-breaks

我打印时有一个字符串看起来像这样:

RT @HHRoadGuy: It's that time again! Time to tune in for the latest #fortheloveofmusic episode. Catch it now on @CMT!

http://t.co/VatlhGq9…

我试图摆脱使用的行距:

tweet = tweet.rstrip('\r\n')

但它不起作用。可能因为间距是介于两者之间的。替换功能也无济于事。我能在这做什么?

5 个答案:

答案 0 :(得分:1)

你确定线路分界符确实是'\ r \ n'而不只是'\ n'吗? 因为replace()应该可以正常工作:

>>> s = 'hello\r\n\r\nhi'
>>> print(s)
hello

hi
>>> s2 = s.replace('\r\n\r\n', '\r\n')
>>> print(s2)
hello
hi

实际上,rstrip()将不起作用,因为该函数仅剥离字符串的右侧(末尾)。

答案 1 :(得分:1)

有许多换行符: \n \n\r \r取决于文字输入。

查看http://en.wikipedia.org/wiki/Newline,具体取决于您的输入文字并替换该字符

答案 2 :(得分:1)

在大多数情况下,以下内容应该可以解决所有换行符,无论它们是如何表示的:

lines = tweet.splitlines()
tweet = " ".join(lines)

或者,为了避免双倍间距(并采用P.M.的概念):

tweet = " ".join([line for line in lines if len(line)])

如果您只想删除空行但保留换行符:

tweet = "\n".join([line for line in lines if len(line)])

答案 3 :(得分:0)

tweet = tweet.replace('\n','')
答案是答案。我的代码中只有一个小错误,在尝试了所有这些不同的方法和事情后,我失明了。遗憾!

答案 4 :(得分:0)

试试这个:

>>> '\n'.join([line for line in your_text.splitlines() if line.strip()])

有关如何处理换行符的更多信息,请参阅http://docs.python.org/2/library/stdtypes.html#str.splitlines

相关问题