以编程方式中断 raw_input

发布于 2024-09-08 04:48:43 字数 181 浏览 1 评论 0原文

有没有办法以编程方式中断Python的raw_input?具体来说,我想向用户显示提示,但也侦听套接字描述符(例如使用 select)并中断提示,输出一些内容,如果数据进入套接字,则重新显示提示。

使用 raw_input 而不是简单地在 sys.stdin 上进行选择的原因是我想使用 readline 模块为提示提供行编辑功能。

Is there a way to programmatically interrupt Python's raw_input? Specifically, I would like to present a prompt to the user, but also listen on a socket descriptor (using select, for instance) and interrupt the prompt, output something, and redisplay the prompt if data comes in on the socket.

The reason for using raw_input rather than simply doing select on sys.stdin is that I would like to use the readline module to provide line editing functionality for the prompt.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

じ违心 2024-09-15 04:48:51

据我所知......“有点”。

raw_input 是阻塞的,所以我能想到的唯一方法是生成一个子进程/线程来检索输入,然后简单地与线程/子进程进行通信。这是一个相当肮脏的黑客(至少对我来说是这样),但它应该可以跨平台工作。当然,另一种选择是使用 Linux 上的curses模块或获取这个 对于窗户。

As far as I know... "Sort of".

raw_input is blocking so the only way I can think of is spawning a subprocess/thread to retrieve the input, and then simply communicate with the thread/subprocess. It's a pretty dirty hack (at least it seems that way to me), but it should work cross platform. The other alternative, of course, is to use either the curses module on linux or get this one for windows.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文