Python: 디렉터리의 파일을 나열하는 5가지 방법

소식

홈페이지홈페이지 / 소식 / Python: 디렉터리의 파일을 나열하는 5가지 방법

May 28, 2023

Python: 디렉터리의 파일을 나열하는 5가지 방법

파일 및 디렉터리 관련 작업은 소프트웨어 엔지니어의 기본 기술입니다. 이는 단순히 하나의 파일을 Windows 파일 탐색기의 다른 폴더에 복사하는 것이 아니라 다음 방법을 이해하는 것입니다.

파일 및 디렉터리 관련 작업은 소프트웨어 엔지니어의 기본 기술입니다. 이는 단지 하나의 파일을 Windows 파일 탐색기의 다른 폴더에 복사하는 것이 아니라 소프트웨어 기능을 사용하여 자동 배치 작업을 수행하는 방법을 이해하는 것입니다.

이것은 큰 주제입니다. 오늘 우리는 한 가지 구체적인 문제인 특정 디렉터리 아래의 모든 파일 이름을 나열하는 방법에 대해 알아볼 것입니다. Python에서 디렉터리에는 파일 그룹과 하위 디렉터리가 포함됩니다.

Python 디렉터리의 파일을 나열하고 액세스하는 5가지 방법을 소개하겠습니다. 이러한 각 방법은 다양한 시나리오에서 사용됩니다.

Python 디렉터리의 파일을 나열하는 한 가지 방법은 Python의 OS 모듈에 있는 os.listdir() 메서드를 사용하는 것입니다.

위의 코드는 현재 경로 아래의 모든 파일과 디렉터리의 이름을 인쇄합니다. 다른 경로를 기반으로 결과를 인쇄하려면 os.listdir() 함수에 인수를 제공하면 됩니다.

모든 파일만 인쇄하려면 os.path.isfile()이 도움을 줄 것입니다:

디렉터리의 경우 os.path.isdir()이라는 함수도 있습니다.

간단하고 유용하지만, 큰 목록을 반환한다면 어떻게 될까요? 아니면 특정 유형의 파일만 필요한 경우에는 어떻게 합니까? 다행히 Python은 더 복잡한 시나리오를 위한 다양한 옵션을 제공합니다.

Python에 대한 추가 정보 Python에서 목록 병합

OS 모듈의 또 다른 메서드인 walk()를 사용하여 Python 디렉터리의 파일을 나열할 수도 있습니다.

이름에서 알 수 있듯이 디렉터리 트리를 계층별로 "탐색"할 수 있습니다. os.walk() 메서드를 호출하면 생성기가 반환됩니다. 다음 값을 생성하기 위해 next() 메서드를 호출할 때마다 한 계층 더 깊어집니다. 결과는 세 가지 항목(dirpath, dirnames, filenames)을 포함하는 튜플이 됩니다.

예를 들어 두 번째 레이어에 있는 모든 폴더의 이름을 가져오려는 경우 코드는 다음과 같습니다.

모든 파일의 이름을 검색하는 대신 때로는 특정 유형의 파일 이름을 가져오고 싶을 수도 있습니다. glob 모듈은 검색에 정규 표현식을 추가할 수 있으므로 이러한 유형의 작업에 도움이 될 것입니다:

위 코드는 "log"로 끝나는 파일 이름을 나열합니다.

Python 3.4부터 pathlib라는 모듈이 있는데 이 모듈도 도움이 됩니다. 목록 이해 트릭을 사용하면 한 줄의 코드를 사용하여 현재 경로의 모든 파일 이름을 생성할 수 있습니다.

놀랍게도 Path()에는 glob() 함수도 함께 제공됩니다. Python 파일 상단에 glob 모듈을 명시적으로 가져올 필요는 없습니다.

Python5 Pandas Group에 대한 자세한 내용by Python에서 알아야 할 요령

기존 os.listdir() 함수는 직관적이지만 엄청난 양의 파일이 포함된 대규모 디렉터리에는 효율적이지 않습니다. 따라서 Python 3.5에는 새로운 유사한 함수인 os.scandir()이 도입되었습니다.

예, 아마도 짐작하셨을 것입니다. 이 함수는 모든 이름 목록 대신 생성기를 반환합니다. 그리고 필요에 따라 이름을 얻을 수 있습니다. 모든 이름을 한 번에 가져올 필요가 없는 상황에서는 더 효율적입니다.