Python中的异步cmd或readline

nib*_*bot 5 python asynchronous readline nonblocking

我想编写一个简单的程序,两者(1)同时产生输出行,(2)通过命令行(通过readline)接受来自用户的输入。(例如,以文本模式的聊天客户端为例。我希望能够撰写我的聊天消息,同时仍能看到收到的传入聊天消息。)要实现此目的,我希望能够异步调用readline。

Readline库通过其回调接口明确支持此功能

备用接口可用于普通readline()。某些应用程序通常需要通过使用主循环在各种文件描述符上使用select()来使键盘I / O与文件,设备或窗口系统I / O交织。为了满足这种需求,还可以从事件循环中将readline作为“回调”函数来调用。有一些功能可以简化这一过程。

  • 可以通过Python使用此功能吗?
  • 可以将Cmd类用于此目的吗?

ppp*_*ery 0

有些 Python 安装支持该readline接口,有些则不支持。找出答案的唯一方法是通过测试。起作用import readline还是提高ImportError

pythoncmd模块旨在用于完全不同的目的,包括制作您自己的 shell,并且在这种情况下没有帮助。

即使该readline模块不可用,也可以使用线程完成类似的任务。