首頁 >後端開發 >Python教學 >如何在 Python 中逐行傳輸子程序輸出?

如何在 Python 中逐行傳輸子程序輸出?

DDD
DDD原創
2024-12-13 19:47:18713瀏覽

How to Stream Subprocess Output Line by Line in Python?

逐行串流傳輸子進程輸出

處理透過Python 中的子程序呼叫的雜訊Linux 實用程式時,有效地將輸出捕獲到日誌檔案並將其顯示給使用者可能具有挑戰性。

問題:

最初,Python 腳本嘗試使用以下程式碼擷取子程式輸出:

但是,這種方法沒有表現出所需的流輸出行行為:線。相反,只有在產生大量資料後才會出現輸出。

解決方案:

問題在於對 proc.stdout 中的行使用迭代器,它預先讀取整個輸出。為了解決這個問題,應該使用 readline() 來取代:

透過此修改,現在可以根據需要逐行串流輸出。

緩衝注意事項:

需要注意的是,子程序仍可能緩衝輸出。為了解決這個問題,可能需要刷新方法或其他技術來確保及時顯示輸出。

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

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