如何在adb shell模型下读取dir中的所有文件名

时间:2018-02-04 06:46:44

标签: android python-2.7 shell

我倾向于在Android设备中读取文件名,因为我想检查此设备中的资源是否正确。通常,手动测试的顺序是

adb -s 192.168.1.100:5555 root
adb -s 192.168.1.100:5555 shell

当输入shell模型时,进入dir和ls

cd xxx\xxx\xxx
ls

现在我倾向于编写一个python脚本来帮助我检查它,所以我尝试:

os.system('adb -s 192.168.1.100:5555 root')
obj = subprocess.Popen(["adb -s 192.168.1.100:5555 shell"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)

然后我不知道如何读取文件名并将文件名放入列表中。没有shell模型我试试:

file_list = os.listdir("xxx\xxx\xxx")

l = []
for file_name in file_list:
l.append(file_name)

它有效,但我怎么能在shell模型中做到这一点?我的意思是切换到adb shell路径的路径,然后我可以使用此代码将文件名放入列表中。任何的想法?谢谢!

1 个答案:

答案 0 :(得分:0)

如果要打印shell中特定目录中的所有文件,可以试试这个:

for i in *; do echo $i;done

这是你可以放在python文件中的内容。

import subprocess

p = subprocess.Popen('for i in *; do echo $i;done', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for line in p.stdout.readlines():
    print line,

这将完成你的任务。