하위 폴더에서 특정 파일 형식을 효율적으로 재귀적으로 검색하는 방법
스크립팅 시 기본 폴더 내의 하위 폴더를 심층적으로 검색해야 하는 경우가 많습니다. . 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!