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

Python脚本执行另一个脚本,并在第二个脚本完成其工作后恢复,python,timeout,subprocess,wait,Python,Timeout,Subprocess,Wait,有没有办法检查子流程是否已完成其工作?我的python脚本从cmd执行123.exe。123.exe然后执行一些操作,最后将1或0写入txt文件。Python脚本然后读取txt文件,如果为“1”,则继续作业,如果为“0”,则停止作业。目前我所能想到的就是让python脚本休眠一分钟。通过这种方式,123.exe肯定已将1或0写入txt文件。这种认识非常简单,但同时也很愚蠢 所以我的问题是,有没有一种方法可以在不需要超时的情况下处理这个问题?让python脚本等待123.exe停止的方法?尝试以下

有没有办法检查子流程是否已完成其工作?我的python脚本从cmd执行123.exe。123.exe然后执行一些操作,最后将1或0写入txt文件。Python脚本然后读取txt文件,如果为“1”,则继续作业,如果为“0”,则停止作业。目前我所能想到的就是让python脚本休眠一分钟。通过这种方式,123.exe肯定已将1或0写入txt文件。这种认识非常简单,但同时也很愚蠢

所以我的问题是,有没有一种方法可以在不需要超时的情况下处理这个问题?让python脚本等待123.exe停止的方法?

尝试以下方法:

p = subprocess(...)
os.waitpid(p.pid, 0)
这将等待过程完成,脚本将从此处继续。

尝试以下操作:

p = subprocess(...)
os.waitpid(p.pid, 0)
这将等待流程完成,脚本将从此处继续。

我将使用子流程模块中的速记。从文件中:

使用参数运行命令。等待命令完成,然后返回 返回代码属性

它应该这样工作:

import subprocess
retcode = subprocess.call(["123.exe"])
当然,您不会使用
retcode
,但您的脚本将一直挂起,直到123.exe终止。

我将使用子流程模块中的速记。从文件中:

使用参数运行命令。等待命令完成,然后返回 返回代码属性

它应该这样工作:

import subprocess
retcode = subprocess.call(["123.exe"])
当然,您不会使用
retcode
,但您的脚本将一直挂起,直到123.exe终止。

使用:

retcode = subprocess.call(["123.exe"])
这将执行命令,等待它完成,然后将其返回代码放入
retcode
(如果命令返回正确的返回代码,这样也可以避免检查输出状态文件)

如果您需要手动实例化
子流程.Popen
,请选择

Popen.wait()
(然后选中
Popen.returncode
)。

使用:

retcode = subprocess.call(["123.exe"])
这将执行命令,等待它完成,然后将其返回代码放入
retcode
(如果命令返回正确的返回代码,这样也可以避免检查输出状态文件)

如果您需要手动实例化
子流程.Popen
,请选择

Popen.wait()

(然后检查
Popen.returncode
)。

无需使用
os.waitpid()
,因为子流程本身提供此功能。@redShadow您是对的,使用子流程更合理。无需使用
os.waitpid()
,因为子流程本身提供此功能。@redShadow您是对的,使用子流程进行此操作更合理。