当您在 Python 中运行某些内容popen
时,结果来自缓冲区,每行末尾带有回车符 (13) 的 CR-LF 十进制值。如何从 Python 字符串中删除它?
问问题
19442 次
6 回答
6
你可以简单地做
s = s.replace('\r\n', '\n')
用 NL 替换所有出现的 CRNL,这似乎是您想要的。
于 2009-11-18T22:31:35.853 回答
2
buffer = "<text from your subprocess here>\r\n"
no_cr = buffer.replace("\r\n", "\n")
于 2009-11-18T22:31:55.417 回答
2
如果它们位于字符串的末尾,我建议使用:
buffer = "<text from your subprocess here>\r\n"
no_cr = buffer.rstrip("\r\n")
您也可以使用不带参数的 rstrip() 来删除空格。
于 2009-11-18T22:41:36.317 回答
1
replace('\r\n','\n') 应该可以工作,但有时它就是不行。多奇怪。相反,你可以使用这个:
lines = buffer.split('\r')
cleanbuffer = ''
for line in lines: cleanbuffer = cleanbuffer + line
于 2017-04-12T12:30:05.840 回答
0
实际上,您可以简单地执行以下操作:
s = s.strip()
这将删除任何无关的空格,包括 CR 和 LF,前导或尾随字符串。
s = s.rstrip()
做同样的事情,但只在字符串后面。
那是:
s = ' Now is the time for all good... \t\n\r "
s = s.strip()
s now 包含“现在是一切美好的时候......”
s = s.rstrip()
s now 包含“现在是一切美好的时候......”
有关更多信息,请参阅http://docs.python.org/library/stdtypes.html。
于 2009-11-19T05:17:32.453 回答
0
你也可以s = s.replace('\r', '')
。
于 2009-11-19T05:27:23.363 回答