我正在使用子进程(Python 2.7)来调用软件容器(Docker)上的进程。此过程在目录中创建一些文件。我需要在进程结束并创建文件时,函数F返回一个布尔值,以便我知道我可以访问这些文件。我怎样才能做到这一点?
def F():
cmd1 = 'my_command_that_invoke_docker'
process = subprocess.Popen(cmd1, shell=True)
答案 0 :(得分:1)
您可以等待子进程终止。
如果您想要来自子流程的STDOUT和/或STDERR流(和/或发送数据来处理' STDIN),请使用process.communicate
方法:
stdout, stderr = process.communicate()
process.returncode
将退出状态。
另一方面,如果您只需要等待进程终止而没有任何流捕获,请使用process.wait
方法:
returncode = process.wait()
returncode
将包含子流程的退出状态。
**请注意,在shell=True
的情况下,子进程本身就是shell(除非你直接exec
任何命令。)