我打印时有一个字符串看起来像这样:
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')
但它不起作用。可能因为间距是介于两者之间的。替换功能也无济于事。我能在这做什么?
答案 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。