首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python subprocess.call和subprocess.Popen标准输出怎么弄?

Python subprocess.call和subprocess.Popen标准输出怎么弄?
EN

Stack Overflow用户
提问于 2018-03-16 07:24:28
回答 2查看 0关注 0票数 0

我注意到subprocess.call它在继续执行python脚本之前等待命令完成,我没有办法获得标准输出,除了subprocess.Popen。是否有任何其他函数调用会等到它完成?

代码语言:javascript
复制
result = subprocess.Popen([commands...,
                        self.tmpfile.path()], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = result.communicate()
print out+"HIHIHI"

我的输出:

代码语言:javascript
复制
HIHIHI
EN

回答 2

Stack Overflow用户

发布于 2018-03-16 16:22:25

我正在使用以下构造shell=True。这会为您提供任何命令的输出和错误消息,以及错误代码:

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2018-03-16 16:50:16

代码语言:javascript
复制
subprocess.check_output(...)

调用进程,如果其错误代码为非零,则引发,否则返回其stdout。这只是一个快捷的速记,所以你不必担心PIPEs和事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档