首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Python Popen().communicate()获取stderr

从Python Popen().communicate()获取stderr
EN

Stack Overflow用户
提问于 2021-05-23 01:17:42
回答 1查看 71关注 0票数 0

我有下面的代码片段。最后两个print语句是否等价?敬请指教。

代码语言:javascript
复制
P1 = Popen(shlex.split(hdfs_rm_command), stdout=subprocess.PIPE, stderr=subprocess.PIPE,
           universal_newlines=True)
o4, e4 = P1.communicate()
if P1.returncode != 0:
    print(e4)
    print(P1.stderr)
EN

回答 1

Stack Overflow用户

发布于 2021-05-23 01:22:52

不,Popen对象的stderr成员是一个文件句柄,而不是之前写入该文件句柄的字符串。

无论如何,您可能不应该直接使用Popen;这是许多情况中的一种,在这种情况下,您所需要的只是一个run调用,然后它实际上也会提供您所询问的接口。

代码语言:javascript
复制
P1 = subprocess.run(shlex.split(hdfs_rm_command),
    capture_output=True,
    universal_newlines=True)
if P1.returncode != 0:
    print(P1.stderr)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67652263

复制
相关文章

相似问题

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