首頁 >後端開發 >Python教學 >如何在 Python 中有效地將子進程輸出儲存為字串?

如何在 Python 中有效地將子進程輸出儲存為字串?

Linda Hamilton
Linda Hamilton原創
2024-12-06 15:21:15834瀏覽

How Can I Efficiently Store Subprocess Output as a String in Python?

將子程序輸出儲存在字串中

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

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