2016-12-31 1 views
1

나는 이미지os.walk을 사용하여 목록의 디렉토리를 건너 뛰시겠습니까?

def jpg_descended(folder): 
    matches = [] 
    for root, dirnames, filenames in os.walk(unicode(folder)): 
     for extension in ('*.jpg', '*.jpeg', '*.png'): 
      for filename in fnmatch.filter(filenames, extension): 
        matches.append(os.path.join(root, filename)) 
    return sorted(matches, key=os.path.getmtime, reverse=True) 

하지만 어떻게 그것이 내가 목록에 넣어 한 디렉토리를 건너 얻을 수의 디렉토리의 목록을 생성하는 작업 기능이?

excludes = ["october", "december"] 

는 나는 "10월"또는 "12월"또는 I는 제외 목록에 추가 할 수있는 다른 디렉토리라는 이름의 디렉토리에 아무것도 반환하지 싶다.

모든 도움을 주시면 감사하겠습니다.

+0

[내가 디렉토리를 제외하려면 어떻게 os.walk 사용하는 경우의 사용 가능한 복제()? 다른 방법은 작동하지 않았습니다] (http://stackoverflow.com/questions/24883084/how-do-i-exclude-directories-when-using-os-walk-other-methods-havent-worked) –

답변

2

요구 사항을 충족하는 디렉토리를 삭제하여 dirnames을 제자리에서 편집 할 수 있습니다. os.walk의 경우 topdown=True (기본값) 일 경우 해당 디렉터리가 열거되지 않습니다.

는 예를 들어, 장소 편집에 있는지 확인 :

dirnames[:] = [dirname for dirname in dirnames if dirname not in excludes] 
+0

Ahh! 그것은 작동합니다. 고맙습니다. – dxrth