Python subprocess.readlines() 掛起
問題:
在以下Python 代碼中,使用subprocess.readlines() 串流Ruby文件會導致程式無限期掛起,阻止執行最終的列印語句:
原因:
這裡的問題源自pty 的使用,它用於偽終端處理。這通常會導致 Ruby 端出現行緩衝,導致 readline() 函數無限期地等待換行符。
解決方案:
有多種選擇解決此問題:
1.使用pexpect:
pexpect在非互動式設定中啟用行緩衝:
2.使用stdbuf:
stdbuf 可用於非互動模式下啟用行緩衝:
3.使用標準庫中的pty:
以上是為什麼在 Python 中串流 Ruby 檔案時「subprocess.readlines()」掛起?的詳細內容。更多資訊請關注PHP中文網其他相關文章!