首頁  >  文章  >  後端開發  >  如何將可執行輸出重新導向到檔案和終端?

如何將可執行輸出重新導向到檔案和終端?

Patricia Arquette
Patricia Arquette原創
2024-11-04 08:36:30307瀏覽

How to Redirect Executable Output to Both Files and the Terminal?

執行執行檔並輸出到檔案和終端

當使用subprocess.call() 執行多個執行檔時,您可能需要指示標準輸出和錯誤輸出到檔案和終端。但是,使用 stdout=outf 或 stderr=errf 僅指定輸出應寫入文件,而不是顯示在終端上。

要實現所需的行為,您可以直接利用 Popen 類別並使用stdout=PIPE 參數用於捕獲管道而不是檔案中的標準輸出。具體方法如下:

<code class="python">from subprocess import Popen, PIPE

with open("out.txt", "wb") as outf, open("err.txt", "wb") as errf:
    p = Popen(["cat", __file__], stdout=PIPE, stderr=errf)
    # Read the output from the pipe
    output = p.stdout.read()
    # Write the output to the terminal
    print(output)
    # Ensure the process completes and wait for the output to be fully written
    p.wait()</code>

在此範例中,我們捕獲管道中的 stdout 並使用 p.stdout.read() 讀取它。然後,我們將輸出列印到終端,然後等待進程完成並將輸出完全寫入檔案。這可確保輸出顯示在終端機上並寫入指定的檔案。

以上是如何將可執行輸出重新導向到檔案和終端?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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