继续在Python中运行

继续在Python中运行,python,Python,我正在用Python编写代码。在代码中,调用C++编写的黑箱应用程序。有时这个C++应用程序不收敛,出错消息出现。此错误不会终止Python代码,但会暂停运行。单击错误消息的ok之后,python代码将继续运行,直到代码结束或消息再次出现。在Python中是否有处理此问题的方法:代码检测消息并单击ok 谢谢我相信在您的情况下,Python程序实际上不会继续执行,除非程序作为子进程启动完成-这就是您所说的启动子进程的行为 只要您使用check_call启动子流程,就几乎没有办法找到中间子流程状态,

我正在用Python编写代码。在代码中,调用C++编写的黑箱应用程序。有时这个C++应用程序不收敛,出错消息出现。此错误不会终止Python代码,但会暂停运行。单击错误消息的ok之后,python代码将继续运行,直到代码结束或消息再次出现。在Python中是否有处理此问题的方法:代码检测消息并单击ok


谢谢

我相信在您的情况下,Python程序实际上不会继续执行,除非程序作为子进程启动完成-这就是您所说的启动子进程的行为

只要您使用
check_call
启动子流程,就几乎没有办法找到中间子流程状态,直到它实际终止并获得退出代码

因此,您可以使用构造函数创建一个对象,该对象启动子流程,但不等待子流程完成。通过这种方式,您可以通过检查子流程的其他输出隐式地验证子流程状态(如果可能存在的话)(例如,如果您知道子流程输出将其错误或其他消息写入stdout或stderr,那么您也可以读取子流程输出)


更好的解决方案——修复C++程序。

除非C++程序明确地为你提供了一种检查状态、响应对话框或使它运行而不显示对话框的方法,所以Python中没有任何东西可以解决我所知的问题。 不过,有一些变通方法可能对您有效。根据您的平台,您可以使用窗口管理器扩展模块(如pywin32或pythonxlib)来搜索对话框,并通过编程方式单击Ok


如果您可以使用Jython,您可以使用它,这是一个非常好的、易于使用的可视化自动化包。

完全取决于您如何调用C++黑匣子。它是否引发异常?是什么引起了错误方块,C++程序还是Python程序?你需要它来移动鼠标吗?我认为这里没有足够的信息来回答你的问题。当你说“这个错误没有终止Python代码”时,你是指C++代码吗?谢谢快速入门。这个应用程序被调用使用“子进程.CHECKEL调用”命令。看起来比Python一个C++黑箱的问题更多。