在蟒蛇3.2 OSX下,我是否會在空閒我得到一個奇怪的答案運行「中輸入(sys.stdin)」如下圖所示的Python 3.2空閒VS終端
>>> type(sys.stdin)
<class 'idlelib.rpc.RPCProxy'>
>>>
但是,如果我會reun我得到:
>>> import sys
>>> type(sys.stdin)
<class '_io.TextIOWrapper'>
>>>
我明白這是因爲我在IDLE下運行它。但這不是誤導?
我試圖在IDLE中運行以下命令,花了數小時試圖瞭解爲什麼這不起作用。 (我還是一個蟒蛇新手)
>>> w = sys.stdin.readlines()
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
w = sys.stdin.readlines()
AttributeError: readlines
但剛剛發現,我工作正常在終端下。
>>> w = sys.stdin.readlines()
wow
ww
wewew
>>>
>>> w
['wow\n', 'ww\n', 'wewew\n']
>>>
這是一個錯誤?
工作aorund使用'w = list(sys.stdin)',它將始終工作。我認爲這是一個bug - 「sys.stdin」應該實現'io.IOBase'的接口。 – 2011-06-05 18:46:32
這也發生在Python 2.7中 – Xolve 2011-06-05 18:56:46
它發生在IDLE的所有版本中,至少自readlines被引入以來。不幸的是,正如下面引用的開放式bug所指出的那樣,IDLE的stdin,stdout和stderr代理實現並不完整且是最新的。 – 2011-06-05 19:11:30