"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > os.walk() 함수를 사용하여 Python에서 폴더 내용을 재귀적으로 읽는 방법은 무엇입니까?

os.walk() 함수를 사용하여 Python에서 폴더 내용을 재귀적으로 읽는 방법은 무엇입니까?

2024-11-08에 게시됨
검색:126

How to Recursively Read Folder Contents in Python Using the os.walk() Function?

Python에서 폴더 내용을 재귀적으로 읽기

Python에서는 텍스트 파일을 읽기 위해 디렉터리를 재귀적으로 탐색하려고 할 때 문제가 발생할 수 있습니다. 일반적인 문제는 단일 디렉터리 수준에서만 작동하는 코드입니다.

os.walk 함수 이해

Python의 재귀 폴더 탐색의 핵심은 os에 있습니다. .walk() 함수. 지정된 디렉터리와 해당 하위 디렉터리를 반복하여 루트, 하위 디렉터리 및 파일의 세 가지 값을 반환합니다.

  • root : 처리 중인 현재 디렉터리.
  • subdirs : 현재 디렉터리 내의 디렉터리 디렉토리.
  • files : 현재 디렉토리에 있는 파일(디렉토리 아님).

폴더 탐색 최적화

디렉터리를 재귀적으로 탐색하려면 os.walk()가 반환한 하위 디렉터리 목록을 반복해야 합니다. 그런 다음 각 하위 디렉터리에 대해 os.walk()를 재귀적으로 호출하여 해당 내용을 처리할 수 있습니다.

향상된 Python 코드

예제 코드를 수정하여 여러 디렉터리를 처리할 수 있습니다. 레벨:

import os
import sys

walk_dir = sys.argv[1]

for root, subdirs, files in os.walk(walk_dir):
    for subdir in subdirs:
        # Process subdirectory: call os.walk() recursively for subdir
        for sub_subdir, sub_subfiles, _ in os.walk(os.path.join(root, subdir)):
            # Process subdirectories and files in subdirectory

추가 모범 사례

  • 수동 문자열 조작 대신 경로 연결을 위해 os.path.join()을 사용하세요.
  • 안정성을 위해 os.path.abspath()를 사용하여 스크립트 인수를 절대 경로로 변환하는 것을 고려하세요.
  • with 문을 활용하여 파일 처리를 단순화하고 자동 정리를 보장하세요.
릴리스 선언문 이 글은 1729233616에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3