Оболочка Python для передачи команд в качестве входных данных приложения - PullRequest
0 голосов
/ 08 июня 2018

Автоматизация ручного процесса в Linux с использованием оболочки Python.

Я хочу использовать модуль Python OS для открытия приложения и последующей передачи команд одна за другой в открывшемся приложении.

import os
import subprocess
os.system('<app_name>')
subprocess.call('<app_input_command_1> && <app_input_command_2> && ... && <app_input_command_n>')
exit

Этот код не может передавать команды, просто откройте приложение.

Ваш вклад будет высоко оценен.

Спасибо за ожидаемую помощь.

1 Ответ

0 голосов
/ 08 июня 2018

Если вы хотите открыть приложение и записать его в поток ввода, вы должны использовать subprocess и PIPE:

...: import subprocess
...: p = subprocess.Popen(['cat'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
...: out, _ = p.communicate(input=b'your commands\n')
...: print(out.decode())
your commands
...