Не работает subprocess.Popen

Есть подобный код:

uninstall = f"{work_directory} shell pm uninstall -k --user 0 {iter}"

переменные:

work_directory = C:\platform-tools\adb.exe
iter = com.facemoji.lite.xiaomi

Выполняю:

subprocess.Popen(
    uninstall,
    shell=False,
    stdout=PIPE,
)

Проверяю вывод:

C:\platform-tools\adb.exe shell pm uninstall -k --user 0 com.facemoji.lite.xiaomi

Вроде все верно, но код не отрабатывает. В чем может быть проблема? Если все это выполнить в cmd - то работает. Приложение удаляется с телефона.


Ответы (1 шт):

Автор решения: Александр

Вот как нужно, а не как вы.

>>> import shlex, subprocess
>>> command_line = input()
/bin/vikings -input eggs.txt -output "spam spam.txt" -cmd "echo '$MONEY'"
>>> args = shlex.split(command_line)
>>> print(args)
['/bin/vikings', '-input', 'eggs.txt', '-output', 'spam spam.txt', '-cmd', "echo '$MONEY'"]
>>> p = subprocess.Popen(args) # Success!

Пример из официальной документации

Документация по классу Popen

→ Ссылка