Как запустить несколько команд оболочки одновременно через подпроцесс Python в Windows? - PullRequest
0 голосов
/ 13 апреля 2020

Во-первых, пожалуйста, извините за недостаток знаний; Я новичок в python.

Я хотел бы запустить несколько команд командной строки из скрипта python, используя модуль subprocess. Мой python скрипт должен быть приложением, которое загружает файлы с URL. Эти команды показаны ниже:

set /P _inputname= my-url-here
wget %_inputname%

(wget находится в том же каталоге, что и мой скрипт python)

Я пытался использовать этот метод:

cmds = ['set /P _inputname=', 'my-url-here', 'wget %_inputname%']
subprocess.run('cmds', shell=True)

Однако он не запускается wget.

Я понимаю, что мой вопрос может показаться очень похожим на этот вопрос и этот вопрос . Однако решения в вышеупомянутых постах не сработали для меня. Есть ли альтернативный метод?

1 Ответ

1 голос
/ 13 апреля 2020

Указанные вами посты были предназначены для систем с bash (например, большинство linux дистрибутивов и другие unix подобные oses)

Хотя у меня нет машины windows, я предположим, что это будет работать для вас:

(используйте знак & для разделения команд)

cmds = ['set', "/P", '_inputname={}'.format('my-url-here'), '&','wget', '%_inputname%']
subprocess.run(cmds, shell=True)

обратите внимание также, что cmds - это переменная cmds, а не строка

source : Как запустить две команды в одной строке в Windows CMD?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...