如何用Python包装CLI程序(保持交互性)?
我想为交互式CLI程序(Asterisk CLI)编写一个包装器 基本上,我需要保持与CLI的交互(包括制表符完成),但我想过滤Asterisk的输出,以便只显示与给定模式匹配的行 我尝试了一种基于select()的方法,使用popen.popen4,并在read_fs中添加星号stdout_和_stderr以及sys.stdin,但它有点不起作用 谁能给我一些好的建议吗 非常感谢,如何用Python包装CLI程序(保持交互性)?,python,select,wrapper,command-line-interface,interactive,Python,Select,Wrapper,Command Line Interface,Interactive,我想为交互式CLI程序(Asterisk CLI)编写一个包装器 基本上,我需要保持与CLI的交互(包括制表符完成),但我想过滤Asterisk的输出,以便只显示与给定模式匹配的行 我尝试了一种基于select()的方法,使用popen.popen4,并在read_fs中添加星号stdout_和_stderr以及sys.stdin,但它有点不起作用 谁能给我一些好的建议吗 非常感谢, AndreaPexpect可能对您有用: 网页描述:“Pexpect是一个Python模块,用于生成子应用程序;
AndreaPexpect可能对您有用: 网页描述:“Pexpect是一个Python模块,用于生成子应用程序;控制它们;并响应其输出中的预期模式。Pexpect可用于自动化交互式应用程序,如ssh、ftp、passwd、telnet等。Pexpect是纯Python。” 导言 Python Asterisk包(代号为py Asterisk)试图为Asterisk Manager API生成高质量的、有良好文档记录的Python绑定 该包的最终目标是允许在Python中对星号配置进行丰富的规范,而不是在我们称之为星号配置文件的奇怪的、无结构的、未记录的混乱中 工作功能 实现manager客户端和事件调度器的Python包。
manager API面向用户的命令行界面。“有点不起作用”。那没用。什么不起作用?你有什么问题?如果你想要一个具体的答案,请问一个具体的问题。详细说明。
pexpect
将修复OP一直存在的所有恼人的缓冲问题,并将是我解决此问题的选择。