將子程序輸出儲存在字串中
在Python 中執行系統呼叫時,將結果儲存在字串中以供進一步操作變得至關重要。本文探討如何在 Python 中使用 subprocess.Popen 有效地實現此目的。
考慮下面的範例:
import subprocess # Create a Popen object to execute the ntpq command p2 = subprocess.Popen("ntpq -p")
要將此指令的輸出儲存在字串中,有兩個主要方法方法:
方法1 :subprocess.check_output(Python 2.7或Python 3)
此函數將 Popen 與通訊處理結合起來,以字串形式傳回 stdout 輸出。
from subprocess import check_output # Execute the command and store the output in a string out = check_output(["ntpq", "-p"])
方法2:通訊(Python 2.4-2.6)
對於較舊的Python 版本,通訊方法是
import subprocess # Create a Popen object with stdout connected to a pipe p = subprocess.Popen(["ntpq", "-p"], stdout=subprocess.PIPE) # Read the stdout output and store it in a string out, err = p.communicate()
請注意,該命令應以列表形式提供,因為Popen 不會呼叫shell。
以上是如何在 Python 中有效地將子進程輸出儲存為字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!