首頁 > 後端開發 > Python教學 > 為什麼在 Python 中串流 Ruby 檔案時「subprocess.readlines()」掛起?

為什麼在 Python 中串流 Ruby 檔案時「subprocess.readlines()」掛起?

Mary-Kate Olsen
發布: 2024-12-06 12:59:15
原創
912 人瀏覽過

Why Does `subprocess.readlines()` Hang When Streaming a Ruby File in Python?

Python subprocess.readlines() 掛起

問題:

在以下Python 代碼中,使用subprocess.readlines() 串流Ruby文件會導致程式無限期掛起,阻止執行最終的列印語句:

原因:

這裡的問題源自pty 的使用,它用於偽終端處理。這通常會導致 Ruby 端出現行緩衝,導致 readline() 函數無限期地等待換行符。

解決方案:

有多種選擇解決此問題:

1.使用pexpect:

pexpect在非互動式設定中啟用行緩衝:

2.使用stdbuf:

stdbuf 可用於非互動模式下啟用行緩衝:

3.使用標準庫中的pty:

以上是為什麼在 Python 中串流 Ruby 檔案時「subprocess.readlines()」掛起?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板