執行執行檔並輸出到檔案和終端
當使用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中文網其他相關文章!