首頁  >  文章  >  後端開發  >  如何在 Python 中使用子程序重定向輸出?

如何在 Python 中使用子程序重定向輸出?

Patricia Arquette
Patricia Arquette原創
2024-11-17 18:20:02182瀏覽

How to Redirect Output with Subprocess in Python?

在 Python 中使用 Subprocess 重定向輸出

在 Python 中使用 subprocess 模組執行 shell 指令時,了解如何重新導向輸出非常重要。常見的情況是將命令的標準輸出重定向到檔案中。本文透過探索 Python 實現輸出重定向的方法來解決這項需求。

在提供的 Python 程式碼片段中,使用者嘗試使用 subprocess.call 透過分割指令來將 cat 指令的輸出重新導向到檔案使用 shlex 進入參數。但是,輸出仍然顯示在控制台中。

要在 Python 3.5 及更高版本中正確重定向輸出,可以使用 subprocess.run 的 stdout 參數。此參數接受一個開啟的檔案句柄作為其值,這是輸出的定向位置。以下是一個範例:

# Use a list of args instead of a string
input_files = ['file1', 'file2', 'file3']
my_cmd = ['cat'] + input_files
with open('myfile', "w") as outfile:
    subprocess.run(my_cmd, stdout=outfile)

在此程式碼中,要執行的命令被拆分為參數列表,並且輸出被重定向到名為「myfile」的檔案。 with 語句確保檔案被正確開啟、寫入和關閉。

值得注意的是,為此目的不需要使用像 cat 這樣的外部指令。 Python 內建了讀寫檔案的函數,可以直接使用:

with open('myfile', "w") as outfile:
    outfile.write(open('file1').read())
    outfile.write(open('file2').read())
    outfile.write(open('file3').read())

透過了解如何使用子進程正確重定向輸出或利用Python 的檔案處理功能,您可以有效地管理檔案流Python 腳本中的訊息。

以上是如何在 Python 中使用子程序重定向輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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