在python脚本中包装交互式命令行应用程序

时间:2009-10-14 16:12:21

标签: python command-line

我对从python调用控制交互式CLI应用程序感兴趣。

我想在最基本的层面上我需要一个python脚本来启动主机操作系统上的CLI应用程序。管道从stdin到cli应用程序的任何内容,然后将cli应用程序的任何输出传递给stdout。

从这个基础开始对输入和输出进行一些处理非常简单

老实说,我可能只需要一个关于tecnique被调用的指针。我不知道我需要搜索什么。

2 个答案:

答案 0 :(得分:12)

也许您需要SubprocessMOTW)的内容。

我使用这样的代码来调用shell:

from subprocess import Popen, PIPE

## shell out, prompt
def shell(args, input=''):
    ''' uses subprocess pipes to call out to the shell.

    args:  args to the command
    input:  stdin

    returns stdout, stderr
    '''
    p = Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE)
    stdout, stderr = p.communicate(input=input)
    return stdout, stderr

答案 1 :(得分:5)

PExpect是否符合您的需求?