>  기사  >  백엔드 개발  >  Python 폴더에서 파일을 재귀적으로 효과적으로 읽는 방법

Python 폴더에서 파일을 재귀적으로 효과적으로 읽는 방법

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-18 14:38:30454검색

How to Effectively Read Files Recursively in Python Folders

Python: 재귀 폴더 읽기 다루기

Python을 처음 접하는 사람은 폴더 내의 텍스트 파일을 재귀적으로 읽어야 하는 문제에 직면할 수 있습니다. 계층. 온라인으로 유통되는 코드 조각은 이 문제를 해결하지만 단일 폴더 이상을 탐색할 수 없다는 한계가 있습니다. 이 가이드에서는 Python의 os.walk 함수를 더 자세히 살펴보고 폴더 구조의 내용을 효과적으로 탐색하고 재귀적으로 출력하기 위해 os.path.join을 소개합니다.

os.walk 이해하기

앞서 언급한 코드에 사용된 핵심 메커니즘은 Python의 os.walk 함수입니다. 루트, 하위 디렉터리 및 파일이라는 세 가지 고유한 값을 반환합니다. root는 검사 중인 현재 디렉터리를 나타내고, subdirs는 루트 내의 하위 디렉터리를 나열하며, files는 루트에 있는 디렉터리가 아닌 파일을 열거합니다.

루프 문제 해결

원본 코드의 여러 수준의 폴더를 탐색하려고 하면 루프 반복이 불안정해집니다. 이 문제를 해결하려면 현재 루트 디렉터리 내의 하위 디렉터리와 해당 파일을 반복하도록 수정해야 합니다.

os.path.join 적용

이 문제는 다음에서 발생합니다. 파일 경로의 부적절한 연결. os.path.join은 현재 루트를 파일 이름과 결합하여 정확한 경로 조작을 보장합니다.

향상된 코드

세련된 Python 스크립트에는 다음과 같은 향상된 기능이 포함되어 있습니다.

<code class="python">import os
import sys

walk_dir = sys.argv[1]

for root, subdirs, files in os.walk(walk_dir):
    list_file_path = os.path.join(root, 'my-directory-list.txt')
    with open(list_file_path, 'wb') as list_file:
        for subdir in subdirs:
            list_file.write(('Subdirectory: {}\n'.format(subdir)).encode('utf-8'))
        for filename in files:
            file_path = os.path.join(root, filename)
            list_file.write(('File: {} (full path: {})\n'.format(filename, file_path)).encode('utf-8'))</code>

with 문 활용

with 문은 파일 작업을 편리하고 효율적으로 처리하고 적절한 리소스 관리를 보장합니다. 프로세스를 간소화하여 완료 시 파일이 자동으로 닫힙니다.

결론

이 확장 가이드는 초기 문제에 대해 자세히 설명하여 os.walk에 대한 포괄적인 이해를 제공합니다. 및 os.path.join. 향상된 코드는 효율적이고 정확한 재귀 폴더 읽기를 위해 이러한 개념을 수용하여 Python 사용자가 복잡한 디렉터리 구조를 효과적으로 탐색할 수 있도록 해줍니다.

위 내용은 Python 폴더에서 파일을 재귀적으로 효과적으로 읽는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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