python 执行shell-多行命令-su

3,772 阅读1分钟

第一种方式 不能拿到输出值

import os

system = os.system("adb shell su -c 'cd data/data/com.xxx.xxx/xxx ; ls'")

su 表示拿到管理员权限

第二种方式 能拿到输出值

result = os.popen("adb shell su -c 'cd data/data/com.xxx.xxx/xxx ; ls'")
res = result.read()
for line in res.splitlines():
    print(line)

另外的,这个也可以用,但是不知道怎么拿到su权限

import subprocess

# 这个也可以用,但是不知道怎么拿到su权限
p1 = subprocess.Popen('adb shell cd data&&cd data&&ls |grep com', stdout=subprocess.PIPE,
                      stderr=subprocess.PIPE )
print(p1.stdout.read())

参考了 python获取命令行输出结果

python执行Linux命令,连续执行多条Linux命令 ,os.system和os.popen