簡體   English   中英

從IPython捕獲stdout時輸出損壞/亂碼

[英]Corrupted / Garbled Output when capturing stdout from IPython

在這里提出了類似的問題: ipython redirect stdout顯示損壞 ,但是答案並不令人滿意。

我想做的是捕獲標准輸出,將其寫入PyQt4 QEditText,同時也將其正常發送給終端。

我正在使用python 2.7和Ubuntu 12.04 LTS。

問題是,當我在程序中嵌入IPython終端時,終端輸出文本會出現亂碼,並且會失去自動完成功能。

我能夠非常簡單地在Ubuntu計算機上重現此問題(Windows上似乎不存在該問題)。

在我的Ubuntu術語中:

ipython 
import IPython.utils.io
tee = IPython.utils.io.Tee('fds')  

在這里,僅嘗試使用Tee對象時,文本就會出現亂碼。

在我的程序中,我的操作有所不同,但是歸結為使用自定義對象覆蓋sys.stdout,然后當調用write或flush時,我記錄了捕獲的文本並將其發送回原始stdout和PyQt4 gui。


因此,有沒有一種方法可以在調用write或flush命令時安全地窺視標准輸出? 有沒有辦法做到這一點不會破壞IPython終端?

這是由於終端中文本着色的特殊編碼所致。 嘗試使用'ipython --classic'。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM