Для проекта, над которым я работаю, я хочу автоматизировать серию команд в отдельном окне терминала, чтобы я мог управлять другими программами, которые используют терминал, или просто выполнять общие команды Linux.
До сих пор я пытался использовать подпроцесс, чтобы открыть новое окно терминала, используя
proc = subprocess.Popen('gnome-terminal')
Мне также удалось открыть программы, например, nano.
proc = subprocess.Popen(['gnome-terminal', '--command=nano'])
Но тогда я не могу отправить больше команд в терминал, то есть я могу управлять им как пользователем, но я не могу автоматизировать то, что он делает с python. Я пытался использовать подпроцесс и каналы для отправки большего количества команд, но это не сработало. Я также заглянул в os.system (), но не смог найти решение.
Для быстрого примера
1) Python открывает новый терминал
2) отправить 'эхо, это тест "
3) отправить 'ping -c 10 192.168.x.x >> pingout.txt'
4) в терминале 'nano pingout.txt'
5) напишите «это тест»
6) затем '^ X', 'y' и Return, чтобы сохранить отредактированный файл
Тогда программа на python продолжит работу.