首頁 >後端開發 >Python教學 >如何在 Python 中有效捕獲和儲存 subprocess.Popen 呼叫的輸出?

如何在 Python 中有效捕獲和儲存 subprocess.Popen 呼叫的輸出?

Susan Sarandon
Susan Sarandon原創
2024-12-07 04:36:19171瀏覽

How Can I Efficiently Capture and Store the Output of a subprocess.Popen Call in Python?

在字串中儲存subprocess.Popen 呼叫的輸出

當嘗試使用Python 進行系統呼叫時,可能需要儲存輸出以供供呼叫以後操作。但是,單獨使用 subprocess.Popen 並不能提供一個簡單的方法來捕捉字串中的輸出。

替代方法

要解決此問題,請考慮以下選項:

Python 2.7 或Python 3

利用subprocess.check_output()函數,簡化指令執行與輸出擷取:

from subprocess import check_output
out = check_output(["ntpq", "-p"])

Python 2.4-2.6

使用Popen的通訊方法object:

import subprocess
p = subprocess.Popen(["ntpq", "-p"], stdout=subprocess.PIPE)
out, err = p.communicate()

在這種情況下,out 將包含所需的輸出。

命令調用注意事項

使用 Popen 時,指定命令作為包含命令和選項的列表,例如 ["ntpq", "-p"]。這確保了命令被正確解釋,因為 Popen 不使用 shell 來執行命令。

以上是如何在 Python 中有效捕獲和儲存 subprocess.Popen 呼叫的輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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