在蟒蛇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