Python 使用 adb 进行连续的子进程调用
我正在尝试写一个Python脚本,通过adb检查数据库的内容。问题是,在我的代码中,只有第一个subprocess.call()被执行,后面的都被忽略了。因为我对Python还比较陌生,所以不太确定该怎么解决。以下是我的代码:
import subprocess
def root():
subprocess.call('adb shell',shell=True)
x=input('Enter package name: ')
openSql(x)
def openSql(x):
subprocess.call('cd data/data/%s/databases/'%(x),shell=True)
table=input('Enter table name: ')
openTable(table)
def openTable(table):
subprocess.call('sqlite3 table',shell=True)
subprocess.call('select * from %s'%(table),shell=True)
root()
运行时没有报错,但它只是在我的模拟器中进入了root模式,其他的什么都没做。
root@android:/ #
2 个回答
0
这段内容是关于编程问题的讨论,通常在StackOverflow上,程序员们会互相帮助解决各种技术难题。大家会提出问题,然后其他人会给出建议和解决方案。
在这里,可能会涉及到一些代码示例、错误信息或者是如何使用某些工具和技术的说明。对于初学者来说,理解这些内容可能需要一些时间,但只要慢慢来,多动手实践,就能掌握这些知识。
如果你在学习编程,遇到不懂的地方,可以参考这些讨论,看看别人是怎么解决类似问题的。记得多问问题,和其他人交流,这样能更快进步哦!
import subprocess
p=input('Enter package name: ')
d=input('Enter database name: ')
t=input('Enter table name: ')
print subprocess.check_output(["adb", "shell", "sqlite3 /data/data/{}/databases/{}.db 'select * from {};'".format(p, d, t)])
1
你调用了 root
函数 root()
,这会让你进入 adb shell(安卓调试桥的命令行界面)。你想在这个 adb shell 中运行一个 python
命令 input
,但是这样是行不通的。
这里有几个链接可以帮助你实现想要的功能: