首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >子进程中的python getoutput()等效项

子进程中的python getoutput()等效项
EN

Stack Overflow用户
提问于 2011-07-12 06:59:06
回答 2查看 113.7K关注 0票数 74

我想在python脚本中获得一些外壳命令的输出,比如lsdf。我发现commands.getoutput('ls')被弃用了,但是subprocess.call('ls')只会给我返回代码。

我希望有一些简单的解决方案。

EN

回答 2

Stack Overflow用户

发布于 2013-06-27 05:09:13

对于Python >= 2.7,请使用subprocess.check_output()

http://docs.python.org/2/library/subprocess.html#subprocess.check_output

票数 52
EN

Stack Overflow用户

发布于 2018-07-13 01:44:54

要使用subprocess.check_output()捕获错误,可以使用CalledProcessError。如果您想以字符串的形式使用输出,请从字节码中解码它。

# \return String of the output, stripped from whitespace at right side; or None on failure.
def runls():
    import subprocess
    try:
        byteOutput = subprocess.check_output(['ls', '-a'], timeout=2)
        return byteOutput.decode('UTF-8').rstrip()
    except subprocess.CalledProcessError as e:
        print("Error in ls -a:\n", e.output)
        return None
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6657690

复制
相关文章

相似问题

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