#python #adb
Вопрос:
Поэтому я решил создать очень простое приложение на Python «ADB Installer» для установки сборок и создания скриншотов на устройствах Android с использованием строк os.system / os.popen, например:
os.system("adb connect " IP)
и т.д. Но теперь я немного застрял, потому что мне нужно отправить это (что хорошо работает в скрипте bash, который я использую в качестве основы для своего приложения на Python).:
adb shell "
cd [path]
rm -r [app name]
exit
"
Как мне это сделать с помощью os.system / os.popen, пожалуйста? (Я действительно старался избегать использования adb-оболочки и других реализаций Python, но если другого способа нет, я попробую).
Спасибо!
Комментарии:
1. Можете ли вы пояснить, почему
os.system
это не работает на вас? Разве строка вadb shell
примере не является просто параметром для команды?2. Извините за неясность, может быть, os.system будет работать, я просто не уверен, как ее написать (я действительно новичок в Python, извините). Спасибо!
Ответ №1:
Использование подпроцесса:
from subprocess import run, PIPE
path = "[path]"
app_name = "[app name]"
commands_array = ["adb","shell", "rm", path "/" app_name , "amp;amp;",
"ls", "-la", path]
try:
result = run(commands_array, stdout=PIPE, stderr=PIPE,
check=True, universal_newlines=True)
except Exception as e:
print("An error occured:")
print(e)
print(result.stdout)
Ответ №2:
Используя triplequotes, вы можете получить несколько строк внутри строки. Не уверен, что это сработает, но я бы попробовал.
os.system("""adb shell "
cd [path]
rm -r [app name]
exit
" """)