Python脚本执行另一个脚本,并在第二个脚本完成其工作后继续执行



是否有方法检查子进程是否已完成其工作?我的python脚本从cmd执行123.exe。exe然后做一些事情,最后它将1或0写入TXT文件。然后Python脚本读取txt文件,如果'1'继续作业,如果'0'停止。现在我所能想到的,就是让python脚本暂时休眠。这样一来,123.exe几乎肯定会将1或0写入txt文件。这种认识很简单,但同时也很愚蠢。

所以我的问题是,有没有一种不需要超时的方法来处理这个问题?一种方法,使python脚本等待,直到123.exe停止?

使用说明:

retcode = subprocess.call(["123.exe"])

这将执行命令,等待直到它完成,并且您将其返回代码放入retcode(如果命令返回正确的返回代码,这样您还可以避免检查输出状态文件的需要)。

如果需要手动实例化subprocess.Popen,则选择

Popen.wait()

(然后检查Popen.returncode)

我将使用子进程模块中的 call() 简写。来自文档:

带参数运行命令。等待命令完成,然后返回returncode属性

它应该是这样工作的:

import subprocess
retcode = subprocess.call(["123.exe"])

当然你不会使用retcode,但是你的脚本无论如何都会挂起,直到123.exe终止。

试试这个:

p = subprocess(...)
os.waitpid(p.pid, 0)

这将等待过程完成,您的脚本将从这里继续。

相关内容

  • 没有找到相关文章

最新更新