当你在Python中通过popen
运行某些东西时,结果来自缓冲区,每行末尾有一个回车符(13)的CR-LF十进制值。如何从Python字符串中删除它?
答案 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()
现在包含'现在是所有好的时间......'
答案 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