如何在Python中封装CLI程序(保持交互性)?
我想为一个交互式命令行程序(Asterisk CLI)写一个封装器。
简单来说,我需要保持与这个命令行的互动(包括自动补全),但我想过滤掉Asterisk的输出,只显示符合特定模式的行。
我尝试过一种基于select()的方法,使用popen.popen4,把Asterisk的标准输出和错误输出,还有系统的标准输入放在读取文件列表中,但结果有点不太好。
有没有人能给我一些好的建议呢?
非常感谢,
安德烈
2 个回答
0
http://code.google.com/p/py-asterisk/
介绍
Python Asterisk包(代号py-Asterisk)是一个旨在为Asterisk管理API提供高质量、文档齐全的Python接口的项目。
这个包的最终目标是让我们可以用Python来清晰地设置Asterisk的配置,而不是用那些奇怪、杂乱无章、没有文档的Asterisk配置文件。
功能介绍
这个Python包实现了一个管理客户端和事件调度器。它提供了一个用户友好的命令行界面来操作管理API。
6
Pexpect 可能对你有帮助:http://sourceforge.net/projects/pexpect/
网页上的描述是:“Pexpect 是一个 Python 模块,用于启动子应用程序;控制它们;并对它们输出中的预期模式做出响应。Pexpect 可以用于自动化一些需要互动的应用程序,比如 ssh、ftp、passwd、telnet 等等。Pexpect 完全是用 Python 写的。”