当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python subprocess.check_output用法及代码示例


用法:

subprocess.check_output(args, *, stdin=None, stderr=None, shell=False, cwd=None, encoding=None, errors=None, universal_newlines=None, timeout=None, text=None, **other_popen_kwargs)

使用参数运行命令并返回其输出。

如果返回码不为零,则会引发 CalledProcessErrorCalledProcessError 对象将在returncode 属性中具有返回码,在output 属性中具有任何输出。

这相当于:

run(..., check=True, stdout=PIPE).stdout

上面显示的论点只是一些常见的论点。完整的函数签名与run() 的签名基本相同 - 大多数参数直接传递到该接口。存在一种与 run() 行为的 API 偏差:传递 input=None 将与 input=b''(或 input='' ,取决于其他参数)的行为相同,而不是使用父级的标准输入文件句柄。

默认情况下,此函数将数据作为编码字节返回。输出数据的实际编码可能取决于被调用的命令,因此通常需要在应用程序级别处理对文本的解码。

如常用参数和 run() 中所述,可以通过将 textencodingerrorsuniversal_newlines 设置为 True 来覆盖此行为。

要同时捕获结果中的标准错误,请使用 stderr=subprocess.STDOUT

>>> subprocess.check_output(
...     "ls non_existent_file; exit 0",
...     stderr=subprocess.STDOUT,
...     shell=True)
'ls: non_existent_file: No such file or directory\n'

3.1 版中的新函数。

在 3.3 版中更改:timeout加入。

在 3.4 版中更改:支持input添加了关键字参数。

在 3.6 版中更改:encodingerrors添加。看subprocess.run详情。

3.7 版中的新函数:text被添加为更易读的别名universal_newlines.

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 subprocess.check_output。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。