Обтекание приложения интерактивной командной строки в python script

Я заинтересован в управлении интерактивным приложением CLI из вызовов python.

Я думаю, что на самом базовом уровне мне нужен python script, который запустит приложение CLI на ОС хоста. Труба что-нибудь от stdin до приложения cli, а затем проведите любой вывод из приложения cli в stdout.

Из этой базы должно быть довольно просто сделать некоторую обработку на входе и выходе

Чтобы быть честным, мне, вероятно, просто нужен указатель на то, что называется tecnique. Я понятия не имею, что мне нужно искать.

Ответ 1

Соответствует ли PExpect вашим потребностям?

Ответ 2

Возможно, вы хотите что-то из Subprocess (MOTW).

Я использую такой код, чтобы вызвать вызовы в оболочку:

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