开发者

How to wrap a CLI program in Python (keeping the interactivity)?

I'd like to write a wrapper for an interactive CLI Program (the Asterisk CLI).

Basically, I need to keep the interaction with the CLI (including tab-completion) but I want to filter the output of Asterisk, in order to show only lines matching a given pattern.

I tried a select() based approach, using popen.popen4开发者_JAVA技巧 and putting asterisk stdout_and_stderr and sys.stdin in the read_fs, but it sort of didn't work.

Can anyone give some good pointers to me?

Thanks a lot, Andrea


Pexpect might be useful for you: http://sourceforge.net/projects/pexpect/

Description from the webpage: "Pexpect is a Python module for spawning child applications; controlling them; and responding to expected patterns in their output. Pexpect can be used for automating interactive applications such as ssh, ftp, passwd, telnet, etc. Pexpect is pure Python."


http://code.google.com/p/py-asterisk/

Introduction

The Python Asterisk package (codenamed py-Asterisk) is an attempt to produce high quality, well documented Python bindings for the Asterisk Manager API.

The eventual goal of the package is to allow rich specification of the Asterisk configuration in Python rather than in the quirky, unstructured, undocumented mess that we call the Asterisk configuration files.

Working Functionality

Python package implementing a manager client and event dispatcher. User-oriented command line interface to manager API.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜