0

当我打印它时,我有一个如下所示的字符串:

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')

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

4

5 回答 5

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()不起作用,因为该函数仅在字符串的右侧(末端)剥离。

于 2013-07-11T11:31:12.410 回答
1

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

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

于 2013-07-11T11:31:23.587 回答
1

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

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

或者,为了避免双倍行距(并采用 PM 的概念):

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

如果您只想摆脱空行但保留换行符:

tweet = "\n".join([line for line in lines if len(line)])
于 2013-07-11T11:58:08.117 回答
0

尝试这个 :

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

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

于 2013-07-11T12:11:32.413 回答
0
tweet = tweet.replace('\n','')

是答案。我的代码中出现了一个小错误,在尝试了所有这些不同的方法和事情之后,我失明了。对不起!

于 2013-07-11T11:31:09.550 回答