從 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中文網其他相關文章!