>백엔드 개발 >파이썬 튜토리얼 >Python을 사용하여 디렉터리의 모든 파일을 재귀적으로 나열하려면 어떻게 해야 합니까?

Python을 사용하여 디렉터리의 모든 파일을 재귀적으로 나열하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-19 17:21:10872검색

How Can I Recursively List All Files in a Directory Using Python?

파일을 재귀적으로 반복

모든 파일을 나열하기 위해 디렉터리 구조를 재귀적으로 순회하는 것은 일반적인 프로그래밍 요구 사항입니다. 이러한 맥락에서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.