如果有人pexpect
在 linux 上使用过,您是否注意到pexpect
在使用其readline()
功能时返回窗口样式行尾?你知道摆脱这种情况的方法吗?
问问题
673 次
1 回答
2
不仅 readline() 返回 \r\n,pexpect 返回的所有捕获文本都包含 \r\n 行结尾。
该文档有以下解释:
读取线(自我,大小=-1)
这将读取并返回一整行。尾随换行符保留在字符串中,但当文件以不完整的行结尾时可能不存在。注意:即使在 UNIX 上,这个 readline() 也会查找 \r\n 对,因为这是伪 tty 设备返回的内容。因此,与您可能期望的相反,您将收到换行符 \r\n。立即命中 EOF 时返回一个空字符串。目前,size 参数大多被忽略,因此这种行为对于类文件对象来说不是标准的。如果 size 为 0,则返回一个空字符串。
您可以这样做将 \r\n 转换为 \n
line = child.readline()
line.replace('\r\n', '\n')
于 2012-03-19T23:46:43.680 回答