3

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

4

6 回答 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 回答