如何在Python中封装CLI程序(保持交互性)?

3 投票
2 回答
2258 浏览
提问于 2025-04-15 15:08

我想为一个交互式命令行程序(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 写的。”

撰写回答