2011-04-24 110 views
1

我偶然發現了我只能描述爲Python交互式解釋器中的錯誤。雖然這個錯誤是相當無關緊要的,但我認爲這是一個有趣的問題,並且是學習python,低級計算和調試的好機會。發生瞭解Python交互式解釋器中的打印字節

這裏的問題:

pic = open("blurry.jpg", "rb") 
data = pic.read() 
for byte in data: 
    print byte 

這導致...

#prints the entire file byte by byte_ 
? 

0 
? 
? 
>>> 1;2c 

現在做到這一點後,我發現,[] {} \ @ ^已經被換成了, Å,ä,å,ö,é,'Ü'。有趣的是,他們仍然保持功能。例如list = Ä1,2,3,4Å不會產生錯誤。此外,也許更有趣......即使在我辭去口譯員並回到bash之後,這種行爲仍然存在。

而且,我只能用一個特定的形象,我在這裏舉辦時重新創建此行爲:http://imgur.com/lTo6m

我沒有得到一個線索,在那裏我會開始分析一個問題是這樣,所以我希望這裏有人能夠提供一些見解。

一如既往的感謝!

回答

7

這不是Python的錯誤,這是您的終端切換到備用字符集。在shell提示符下運行reset來解決這個問題。

+0

呵呵!那麼是什麼造成了這一點?如何打印圖片的內容導致改變字符集? – danem 2011-04-24 04:38:36

+0

像幻影tryglyphs。 :) – tchrist 2011-04-24 04:38:52

+1

@Pete:終端驅動程序設置爲攔截特定字節並在收到時切換。該圖片包含這些字節。 – 2011-04-24 04:40:12