栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何从Python的子过程中获取返回代码和输出?[重复]

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何从Python的子过程中获取返回代码和输出?[重复]

Popen和communication将允许您获取输出和返回码。

from subprocess import Popen,PIPE,STDOUTout = Popen(["adb", "devices"],stderr=STDOUT,stdout=PIPE)t = out.communicate()[0],out.returnpreprint(t)('List of devices attached nn', 0)

check_output也可能是合适的,非零退出状态将引发CalledProcessError:

from subprocess import check_output, CalledProcessErrortry:    out = check_output(["adb", "devices"])    t = 0, outexcept CalledProcessError as e:    t = e.returnpre, e.message

您还需要重定向stderr来存储错误输出:

from subprocess import check_output, CalledProcessErrorfrom tempfile import TemporaryFiledef get_out(*args):    with TemporaryFile() as t:        try: out = check_output(args, stderr=t) return  0, out        except CalledProcessError as e: t.seek(0) return e.returnpre, t.read()

只需传递您的命令:

In [5]: get_out("adb","devices")Out[5]: (0, 'List of devices attached nn')In [6]: get_out("adb","devices","foo")Out[6]: (1, 'Usage: adb devices [-l]n')


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/626278.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号