如何用Python包装CLI程序(保持交互性)?

我想为交互式CLI程序(Asterisk CLI)编写一个包装器.

基本上,我需要保持与CLI的交互(包括tab-completion),但我想过滤Asterisk的输出,以便只显示与给定模式匹配的行.

我尝试了一种基于select()的方法,使用popen.popen4并在read_fs中放入asterisk stdout_and_stderr和sys.stdin,但它有点不起作用.

谁能给我一些好的指示?

非常感谢,
安德里亚

解决方法:

Pexpect可能对您有用:http://sourceforge.net/projects/pexpect/

来自网页的描述:“Pexpect是一个Python模块,用于生成子应用程序;控制它们;并响应其输出中的预期模式.Pexpect可用于自动化交互式应用程序,如ssh,ftp,passwd,telnet等.Pexpect is纯Python.“

上一篇:在Python中使用管道脚本时无法启动交互式程序


下一篇:python – 为什么我不能通过结构与redis-cli交互?