본문 바로가기
파이썬

파이썬 아래 디렉토리를 파지 않고 os.walk

by º기록 2020. 12. 16.
반응형

내가 제공 한 디렉토리의 파일 만 반환하도록 os.walk 를 어떻게 제한합니까?

def _dir_list(self, dir_name, whitelist):
    outputList = []
    for root, dirs, files in os.walk(dir_name):
        for f in files:
            if os.path.splitext(f)[1] in whitelist:
                outputList.append(os.path.join(root, f))
            else:
                self._email_to_("ignore")
    return outputList

 

해결 방법

 

walklevel 함수를 사용하세요.

import os

def walklevel(some_dir, level=1):
    some_dir = some_dir.rstrip(os.path.sep)
    assert os.path.isdir(some_dir)
    num_sep = some_dir.count(os.path.sep)
    for root, dirs, files in os.walk(some_dir):
        yield root, dirs, files
        num_sep_this = root.count(os.path.sep)
        if num_sep + level <= num_sep_this:
            del dirs[:]

os.walk 처럼 작동하지만 재귀의 깊이를 나타내는 level 매개 변수를 전달할 수 있습니다.

 

참조 페이지 https://stackoverflow.com/questions/229186

 

 

반응형