微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python pexpect.expect 有时看不到来自生成的孩子的输出字符串

如何解决Python pexpect.expect 有时看不到来自生成的孩子的输出字符串

我在 python 中使用 pexpect.spawn 并且 pexpect.expect 函数有时似乎没有“听/看”字符串(每几十次迭代一次)导致触发异常。检查日志后,该字符串似乎存在于日志中(在 pexpect.spawn 中设置)。下面是日志的片段,其中 pexpect.expect("bluetool") 失败,但在日志文件中可以看到。

[0;94m[bluetool2][0m# [0;94m[bluetool2][0m# [0;94m[bluetool2][0m# [0;94m[bluetool2][0m# [0;94m[bluetool2][0m#   
18:08:28.770    FAIL    Stopping bluetool2 did not work... :

我必须执行以下操作才能在日志文件中打印所有内容。如果没有,我会看到日志文件中也缺少最后几个字符串(可能更多?)。

try:
   self.expect(pexpect.EOF,1)
except:
    #in case EOF already reached,an exception is raised,ignore it
    pass

产生的进程是一个蓝牙控制进程,它通过 pexpect 发送“连接”命令连接到蓝牙跟踪器。连接后,跟踪器向子进程发送几个字符串,这些字符串在日志文件中可见。

会不会是因为缓冲?缓冲区大小设置为 100000,但我尝试将缓冲区大小减少到 1,这并没有改变行为。 任何帮助表示赞赏!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。