2017-11-24 18 views
-1

파일 이름이 없으면 어떻게 전체 경로를 얻을 수 있습니까? Python3. 나는이 사용adb가 안드로이드의 마스크로 전체 경로를 얻습니다.

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

하지만 난 당신이 안드로이드 장치에이 파이썬 코드를 실행하는 가정

+0

당신은 구글의 공식 [파이썬 ADB 패키지]를 사용에 관심이있을 수는 (https://github.com/google/python-adb) – Sebastian

답변

0

성가신입니다.

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] 
+0

알 수 있지만 하나의 파일 만 될 수 있습니다. 나는 단축 코드를 원한다.) – Art