我注意到subprocess.call
它在继续执行python脚本之前等待命令完成,我没有办法获得标准输出,除了subprocess.Popen
。是否有任何其他函数调用会等到它完成?
result = subprocess.Popen([commands...,
self.tmpfile.path()], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = result.communicate()
print out+"HIHIHI"
我的输出:
HIHIHI
发布于 2018-03-16 16:22:25
我正在使用以下构造shell=True
。这会为您提供任何命令的输出和错误消息,以及错误代码:
process = subprocess.Popen(cmd, shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
# wait for the process to terminate
out, err = process.communicate()
errcode = process.returncode
发布于 2018-03-16 16:50:16
subprocess.check_output(...)
调用进程,如果其错误代码为非零,则引发,否则返回其stdout。这只是一个快捷的速记,所以你不必担心PIPE
s和事情。
https://stackoverflow.com/questions/-100003635
复制相似问题