>백엔드 개발 >파이썬 튜토리얼 >Python을 사용하여 하위 폴더의 모든 \'.txt\' 파일을 효율적으로 찾는 방법은 무엇입니까?

Python을 사용하여 하위 폴더의 모든 \'.txt\' 파일을 효율적으로 찾는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-29 19:28:02939검색

How to Efficiently Find All

하위 폴더에서 특정 파일 형식을 효율적으로 재귀적으로 검색하는 방법

스크립팅 시 기본 폴더 내의 하위 폴더를 심층적으로 검색해야 하는 경우가 많습니다. . Python에서 os.walk 함수는 디렉터리를 재귀적으로 탐색할 수 있습니다. 그러나 특정 유형의 파일만 추출하는 것은 까다로울 수 있습니다.

제공된 예에서 목표는 기본 폴더와 하위 폴더 내의 모든 ".txt" 파일 목록을 만드는 것입니다. 코드는 os.walk를 사용하여 모든 파일과 하위 폴더를 반복하지만 subFolder는 각 파일에 대한 올바른 하위 폴더 대신 하위 폴더 목록을 보유합니다.

이 문제를 해결하려면 현재 폴더를 나타내는 "root" 변수가 필요합니다. 하위 폴더 대신 디렉터리 경로를 활용해야 합니다. 각 파일에는 파일 시스템 내의 위치를 ​​나타내는 해당 루트가 있습니다.

최적화된 솔루션은 다음과 같습니다.

import os
result = [os.path.join(dp, f) for dp, dn, filenames in os.walk(PATH) for f in filenames if os.path.splitext(f)[1] == '.txt']

이 코드는 파일 시스템 내의 모든 루트 디렉터리, 하위 디렉터리 및 파일을 반복합니다. PATH 폴더. 확장자가 ".txt"인 파일이 결과 목록에 추가됩니다.

또는 glob 모듈을 사용하여 확장자 기반 선택을 단순화할 수 있습니다.

from glob import glob
result = [y for x in os.walk(PATH) for y in glob(os.path.join(x[0], '*.txt'))]

Python 3.4의 경우 더 간결한 솔루션 Pathlib 사용 가능:

from pathlib import Path
result = list(Path(".").rglob("*.[tT][xX][tT]"))

이러한 솔루션은 하위 폴더를 효율적으로 검색하고, 확장자를 기준으로 파일을 추출하고, 목록으로 반환합니다.

위 내용은 Python을 사용하여 하위 폴더의 모든 \'.txt\' 파일을 효율적으로 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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