Я пытался запустить некоторые приложения с аргументами в командной строке Windows, но в скрипте Python. У меня возникают проблемы с пониманием модуля подпроцесса и с тем, как я могу использовать его для отправки входных данных, захвата выходных данных и использования данных в будущих функциях или циклах.
Возьмем, к примеру, командную строку инструментария управления Windows:
Я хотел бы запустить командную строку из скрипта Python, запустить wmic, сделать что-то еще и выйти из командной строки.
Я знаю, как записать cmd и даже wmic:
import subprocess
cmd = subprocess.Popen(["cmd", "/K", "wmic"])
Чего я не знаю, так это как отправлять команды в wmic. Я пробовал следующее:
import subprocess
cmd = subprocess.Popen(["cmd", "/K", "wmic"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
stdoutdata, stderrdata = cmd.communicate(input="product get name")
или
cmd.stdin.write("product get name")
cmd.stdin.flush()
Не работает. В этом примере я хотел бы запустить командную строку, запустить WMIC, отправить команду (имя продукта / процесса), захватить выходные данные WMIC и использовать его для выполнения каких-либо действий:
for line in cmd.stdout:
if line == "some string":
do this or do that
В то же время я хотел бы, чтобы вывод выводился в открытой командной строке.
Буду признателен за любую помощь.