當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。