Android 在python中启动adb命令

Android 在python中启动adb命令,android,python,python-3.x,adb,Android,Python,Python 3.x,Adb,我尝试在python中启动adb命令,而不使用自定义模块 尝试: 但这不起作用。没有结果的代码完成无法使用您的确切命令进行测试,但效果良好: import subprocess process = subprocess.Popen('cmd.exe', stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=None, shell=True) o,e = process.communicate(b"dir\n") print(o) (我获取

我尝试在python中启动adb命令,而不使用自定义模块

尝试:


但这不起作用。没有结果的代码完成

无法使用您的确切命令进行测试,但效果良好:

import subprocess

process = subprocess.Popen('cmd.exe', stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=None, shell=True)
o,e = process.communicate(b"dir\n")
print(o)
(我获取目录的内容)

例如,在发送命令时,您缺少行终止符。命令没有发送到
cmd
程序,在此之前管道已断开

这样会更好:

import subprocess

process = subprocess.Popen('cmd.exe',   stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=None)
process.stdin.write(b"adb shell uninstall com.q.q\n")
process.stdin.write(b"adb shell install C:\\...\\qwerty.apk\n")
o,e = process.communicate()
但这是一种非常奇怪的运行命令的方式。只要使用
check_call
,正确分割参数即可:

subprocess.check_call(["adb","shell","uninstall","com.q.q"])
subprocess.check_call(["adb","shell","install",r"C:\...\qwerty.apk"])

非常感谢你!我发现了一个错误。“壳”多余
subprocess.check_call(["adb","shell","uninstall","com.q.q"])
subprocess.check_call(["adb","shell","install",r"C:\...\qwerty.apk"])