首頁 >後端開發 >Python教學 >如何在 Python 中從 `subprocess.call()` 檢索進程輸出?

如何在 Python 中從 `subprocess.call()` 檢索進程輸出?

Barbara Streisand
Barbara Streisand原創
2024-11-30 04:26:17112瀏覽

How Can I Retrieve Process Output from `subprocess.call()` in Python?

從 subprocess.call() 檢索進程輸出

在 2.7 之前的 Python 版本中,從使用 subprocess 呼叫的進程獲取輸出。 call() 可能具有挑戰性。由於 StringIO 物件中缺少 'fileno' 屬性,將 StringIO.StringIO 物件傳遞給 stdout 參數會觸發錯誤。

解決方案

對於 Python 版本 2.7如上所述, subprocess.check_output 函數提供了一個簡單的解決方案。它將子進程的執行與捕獲並以字串形式傳回其標準輸出結合。

例如(在 Linux 上測試):

import subprocess

output = subprocess.check_output(['ping', '-c', '1', '8.8.8.8'])

print(output)

請注意,ping 指令使用Linux 表示法(-c 表示計數)。對於 Windows,將其變更為 -n。

有關更多詳細信息,請參閱此[其他帖子](https://stackoverflow.com/a/5647266/6214952) 中更全面的答案。

以上是如何在 Python 中從 `subprocess.call()` 檢索進程輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn