如何在pexpect中处理这个bug程序?

2024-09-30 02:31:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用pexpect自动化一个名为instantmusic的程序。有时,这个程序在实际完成之前发送一个eof。这是一个截图(如果你看不到截图,我在问题的最后链接到了我更详细的bug报告): enter image description here

我可以通过使用以下代码来检测适当的结尾:

child.expect(
        ['Deleting*(pass -k to keep)*', pexpect.EOF], timeout=3000)

然而,我的问题是pexpect不能捕获eof之外的输出(顺便说一句,不使用“pexpect.EOF”会使pexpect在遇到EOF时抛出异常。)

有办法解决这个问题吗

PS:我已经更详细地描述了这个bug here。但我通常喜欢能够处理这种情况,即使源程序有缺陷。因为在我看来这应该是可能的


Tags: to代码程序child链接报告结尾pass
1条回答
网友
1楼 · 发布于 2024-09-30 02:31:58

似乎模式需要是一个正则表达式,那么这样会更好吗

child.expect(['Deleting.*\(pass -k to keep\)', pexpect.EOF], timeout=3000)
# .....................^^^................^

pexpect似乎没有实现tcl expect glob样式的模式

相关问题 更多 >

    热门问题