当你在Python中使用
popen
运行一些东西时,结果会从缓冲区中带有每行末尾的回车符(13的CR-LF十进制值)。如何从Python字符串中删除此内容?s = s.replace('\r\n', '\n')
您想要的是将所有CRNL的出现替换为NL。
buffer = "<text from your subprocess here>\r\n"
no_cr = buffer.replace("\r\n", "\n")
buffer = "<text from your subprocess here>\r\n"
no_cr = buffer.rstrip("\r\n")
replace('\r\n','\n') 应该可以使用,但有时候却不起作用。多么奇怪。相反,您可以使用以下内容:
lines = buffer.split('\r')
cleanbuffer = ''
for line in lines: cleanbuffer = cleanbuffer + line
实际上,你可以简单地按照以下步骤进行:
s = s.strip()
这将删除任何多余的空格,包括回车和换行符,以及字符串前后的空格。
s = s.rstrip()
执行相同的操作,但仅截取字符串的尾部。
也就是说:
s = ' Now is the time for all good... \t\n\r "
s = s.strip()
s现在包含“现在是所有善良的时候…”
s = s.rstrip()
s现在包含'现在是所有善良的时候...'
你也可以使用 s = s.replace('\r', '')
。
'b'
会强制保留'\r'
(如果支持的话--没有检查)。 - John Millikin