모든 파일을 나열하기 위해 디렉터리 구조를 재귀적으로 순회하는 것은 일반적인 프로그래밍 요구 사항입니다. 이러한 맥락에서 Python에서 이를 효율적으로 수행하는 방법을 살펴보겠습니다.
한 가지 접근 방식은 Python 3.5에 도입된 pathlib.Path().rglob() 메서드를 사용하는 것입니다. 이는 디렉토리 및 하위 디렉토리의 특정 패턴과 일치하는 모든 파일을 식별하는 편리한 방법을 제공합니다.
from pathlib import Path for path in Path('src').rglob('*.c'): print(path.name)
glob 모듈 사용을 선호하는 경우 recursive=True를 사용하여 glob() 기능을 활용할 수 있습니다. 인수:
from glob import glob for filename in glob('src/**/*.c', recursive=True): print(filename)
이전 Python 버전과 호환되는 또 다른 옵션은 재귀 순회에 os.walk()를 사용하고 패턴 일치를 위한 fnmatch.filter():
import fnmatch import os matches = [] for root, dirnames, filenames in os.walk('src'): for filename in fnmatch.filter(filenames, '*.c'): matches.append(os.path.join(root, filename))
os.walk() 기술은 pathlib 모듈과 관련된 오버헤드가 낮기 때문에 파일 수가 많은 시나리오에서 더 빠른 것으로 입증될 수 있습니다.
어떤 접근 방식을 선택하든 이러한 방법은 지정된 디렉터리와 해당 하위 폴더 내의 파일을 반복적으로 식별하고 나열하는 데 효과적으로 도움이 됩니다.
위 내용은 Python을 사용하여 디렉터리의 모든 파일을 재귀적으로 나열하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!