Как запустить это предложение командной строки, используя подпроцесс? - PullRequest
1 голос
/ 27 июня 2019

как запустить это предложение в подпроцессе?

./deb -address  12.345.66.3:6000 -file ./234.csv  -key "-key" -secret "password" -id "1234" -insert line


subprocess.call(["","","",""])  but  when "" comes like here in key how to use its `"" -key ""` or `'" -key "'`

Нужны входные данные

1 Ответ

2 голосов
/ 27 июня 2019

Вы можете запустить всю команду непосредственно в shell, заключив в кавычки одинарную кавычку и используя аргумент shell=True:

subprocess.call('./deb -address  12.345.66.3:6000 -file ./234.csv  -key "-key" -secret "password" -id "1234" -insert line', shell=True)

Но я бы посоветовал вам использовать shlex.split, чтобы выполнить разбиение и сгенерировать правильно экранированный список команд для вас, чтобы вы могли запустить его без использования оболочки:

import shlex
command = shlex.split('./deb -address  12.345.66.3:6000 -file ./234.csv  -key "-key" -secret "password" -id "1234" -insert line')
subprocess.call(command)

FWIW, вы должны использовать subprocess.run вместо subprocess.call (и братья) в поддерживаемой версии.

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