2016-08-09 2 views
0

폴더 안에있는 이미지를보고 삽입 된 EXIF ​​데이터를 추출하는 프로그램을 작성했습니다. 현재 아래의 코드를 사용하여 폴더 안에있는 모든 파일의 경로를 가져오고 변수 'folder_name'은 사용자가 입력합니다. 생성 된 목록은 프로그램에서 모든 이미지를 순환하는 데 사용됩니다.폴더 트리를 통해 반복적으로 읽고 어떤 폴더에 파일이 있는지 확인하십시오.

file_names = glob(join(expanduser('~'),'Desktop',folder_name,'*')) 

이제 폴더 트리를보고 이미지/파일이있는 폴더 만 반환하는 기능을 추가하고 싶습니다. 이 목록은 나머지 코드를 위의 코드로 전달하여 나머지 작업을 수행 할 수 있습니다. 이 부분을 개발하기 위해 어디에서 포인터를 찾아야할까요?

또한 파일 경로에서 endswith(.jpg)을 사용하여 이미지 파일 만 선택하고 출력 할 수 있습니까? 대/소문자 구분 때문에 작동하지 않았습니다.

+2

안녕처럼 os.walk + mimetypes.guess_type을 시도 유래에 오신 것을 환영합니다. 귀하의 질문은이 사이트에서 너무 광범위하다고 생각합니다. 기본적으로 여기에 사용자에게 알고리즘을 설계하도록 요청하고 있습니다. –

+0

재귀 걷는 trought dir tree가 좋을 것 같아요 ** os.walk **, 대소 문자를 구분하려면 파일 이름에 to_lower 함수를 사용하고 lowerecase 확장명을 사용하십시오 –

+0

내 질문 Konstantin을 편집했습니다. 감사합니다 돌봐 그것을 조사합니다. – Utkarsh

답변

1

당신은 너무

import os 
import os.path 
import mimetypes 
top="." 
imagefiles=[] 
for root, dirs, files in os.walk(top): 
    for fn in files: 
     t,e= mimetypes.guess_type(fn, strict=False) 
     if t.startswith("image/"): 
      imagefiles.append(os.path.join(root,fn) 
0

비교하기 전에 .lower() 문자열 방법을 두 문자열에 모두 적용하여 대/소문자 구분을 피할 수 있습니다.

관련 문제