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 중국어 웹사이트의 기타 관련 기사를 참조하세요!