Подпроцесс Python - запустить вторую команду в новой созданной командной строке - PullRequest
0 голосов
/ 26 февраля 2019

Python 3.6.7, Windows 7/10

Мне нужно выполнить две команды одну за другой, используя subprocess.run.Первая команда открывает новую командную строку.Следующая команда должна быть запущена во вновь созданной командной строке.С помощью приведенного ниже кода вторая команда всегда выполняется в начальной командной строке.Можно ли это сделать?

import subprocess

subprocess.run('first command', shell=True)  #first command opens a new command prompt
subprocess.run('second command', shell=True)  #second command needs to be run in the newly created command prompt

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Это зависит от того, какие команды вы хотите запустить, но я думаю, что одним из решений будет создание пакетного сценария, выполняющего эти две команды одну за другой.

Или вы можете попытаться написать вторую команду на вводе вашего первого подпроцесса, например:

pipe = subprocess.Popen('first command', shell=True, stdin=subprocess.PIPE)
pipe.communicate(input='second command')

, но я не уверен, что это сработает, поскольку процесс завершится сразу послепервая команда завершение?

РЕДАКТИРОВАТЬ: добавить отступ

0 голосов
/ 26 февраля 2019

Почему бы вам не передать команды?

subprocess.run('first command | second command', shell=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...