以编程方式中断raw_input

9 投票
1 回答
1883 浏览
提问于 2025-04-16 00:44

有没有办法在程序中中断Python的raw_input?具体来说,我想给用户显示一个提示信息,但同时也想监听一个套接字(比如用select),如果套接字有数据进来,就中断提示,输出一些内容,然后再重新显示提示。

我选择使用raw_input而不是直接在sys.stdin上使用select,是因为我想用readline模块来提供提示信息的行编辑功能。

1 个回答

2

据我所知……“算是吧”。

raw_input 是一个阻塞的操作,所以我能想到的唯一办法就是创建一个子进程或线程来获取输入,然后和这个线程或子进程进行沟通。这种方法有点不太干净(至少我觉得是这样),但应该在不同的平台上都能用。另一种选择当然是使用 Linux 上的 curses 模块,或者在 Windows 上使用这个

撰写回答