1
9
这是在Ubuntu8.04.1,python 2.5.2上工作的,我没有得到这样的错误。也许您应该从命令行尝试它,Eclipse可能使用它自己的stdin,如果从WingIDE运行它,我会得到完全相同的错误,但是从命令行它工作得很好。 原因是,IDE(例如Wing)使用自己的类netserver.cdbginputstream作为sys.stdin 所以sys.stdin.fileno为零,这就是错误的原因。 基本上,ide stdin不是tty(print sys.stdin.is a tty()为false)
|
2
4
将终端置于原始模式并不总是一个好主意。事实上,这已经足够清除icanon位了。下面是另一个支持超时的getch()版本:
|