去掉  来自python字符串

时间:2009-11-18 22:29:22

标签: python popen newline

当你在Python中通过popen运行某些东西时,结果来自缓冲区,每行末尾有一个回车符(13)的CR-LF十进制值。如何从Python字符串中删除它?

6 个答案:

答案 0 :(得分:5)

你可以简单地做

s = s.replace('\r\n', '\n')

用NL替换所有出现的CRNL,这似乎是你想要的。

答案 1 :(得分:2)

buffer = "<text from your subprocess here>\r\n"
no_cr = buffer.replace("\r\n", "\n")

答案 2 :(得分:2)

如果它们位于字符串的末尾,我建议使用:

buffer = "<text from your subprocess here>\r\n"
no_cr = buffer.rstrip("\r\n")

你也可以使用没有参数的rstrip()来删除空格。

答案 3 :(得分:0)

实际上,您可以简单地执行以下操作:

s = s.strip()

这将删除任何无关的空格,包括CR和LF,导致或尾随字符串。

s = s.rstrip()

是否相同,但只跟踪字符串。

那是:

s = '  Now is the time for all good...  \t\n\r   "
s = s.strip()

现在包含'现在是所有好的时间......'

s = s.rstrip()

现在包含'现在是所有好的时间......'

有关详情,请参阅http://docs.python.org/library/stdtypes.html

答案 4 :(得分:0)

你也可以s = s.replace('\r', '')

答案 5 :(得分:0)

替换(&#39; \ r \ n&#39;,&#39; \ n&#39;)应该有效,但有时却不行。多么奇怪。相反,你可以使用它:

lines = buffer.split('\r')
cleanbuffer = ''
for line in lines: cleanbuffer = cleanbuffer + line