adb在android上通过掩码获取完整路径

时间:2017-11-24 20:12:55

标签: android python python-3.x subprocess adb

如果我没有文件名,我怎么能得到完整的路径? Python3。 我用这个:

previous_v = ("/sdcard/AppPackage/old_version/" +
str(subprocess.check_call(["adb", "shell", "ls", "/sdcard/AppPackage/old_version/"]))[0]) 

但这很麻烦

1 个答案:

答案 0 :(得分:0)

我假设您在Android设备上运行此Python代码。

import os
BASE_DIR = '/sdcard/AppPackage/old_version'
previous_v = BASE_DIR + '/' + os.listdir(BASE_DIR)[0]

这可能会简化您的代码,但要注意:当给定目录中有多个文件时,仅使用文件列表中的第一个文件会导致意外的影响。您可能还想检查是否存在文件。

编辑:通过匹配必须出现在文件名中的字符串以及在找不到文件时通过错误处理来扩展代码。

import os

BASE_DIR = '/sdcard/AppPackage/old_version'
FILENAME_PATTERN = 'my_great_app'

filenames = os.listdir(BASE_DIR)
filenames = [fn for fn in filenames if fn.contains(FILENAME_PATTERN)]

if not filenames:
    raise FileNotFoundError('No old version found!')

previous_v = BASE_DIR + '/' + os.listdir(BASE_DIR)[0]