在 Python 腳本中使用子進程時,在存取其輸出之前等待進程完成可能會令人沮喪。對於冗長的過程來說,這一點變得尤其明顯。因此,有必要找到一種方法來連續顯示產生的輸出。
為了實現這一點,您可以使用 iter 函數在命令輸出後立即處理行。以下程式碼範例示範了一個常見用例:
<code class="python">from __future__ import print_function # Only Python 2.x import subprocess def execute(cmd): popen = subprocess.Popen(cmd, stdout=subprocess.PIPE, universal_newlines=True) for stdout_line in iter(popen.stdout.readline, ""): yield stdout_line popen.stdout.close() return_code = popen.wait() if return_code: raise subprocess.CalledProcessError(return_code, cmd) # Example for path in execute(["locate", "a"]): print(path, end="")</code>
利用此方法,您可以在進程運行時有效地串流傳輸進程的輸出,從而無需等待其完成。
以上是如何在 Python 執行時顯示即時子進程輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!