1

如果有人pexpect在 linux 上使用过,您是否注意到pexpect在使用其readline()功能时返回窗口样式行尾?你知道摆脱这种情况的方法吗?

4

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