我正在尝试编写一个库,它可以在标准 Python、iPython 和 qtConsole 中跨平台工作。
除了我的键盘交互外,一切正常。
我想要“按任意键”或“按 Y/N/Esc”之类的东西
在 Windows 中,这很容易使用 msvcrt 和 kbhit。(虽然我没有在 Windows 中尝试过 qtconsole)在 Linux 中,这可以在 Python 和 iPython 下使用 stdin 和 termios 工作。
问题是 qtconsole 似乎使用非阻塞标准输入并且不支持 termios。
你会认为这是一件好事,只需刷新标准输入,然后检查它是否有字符。问题是这似乎不起作用。它永远不会返回一个字符。就好像 ipython 本身正在妨碍终端输入标准输入。
在 qtconsole 中读取 sys.stdin 的正确方法是什么?
(顺便说一句,qtconsole 没有标签,这个问题是关于 qtconsole,而不仅仅是 iPython)