Python에서 하위 디렉터리 나열

Muhammad Maisam Abbas 2023년1월30일
  1. Python에서glob모듈을 사용하여 하위 디렉토리 나열
  2. Python에서os.scandir()함수를 사용하여 하위 디렉토리 나열
  3. Python에서os.walk()함수를 사용하여 하위 디렉토리 나열
Python에서 하위 디렉터리 나열

Python에서 지정된 디렉토리 내의 모든 하위 디렉토리를 나열하는 데 사용할 수있는 효과적인 메서드는 glob.glob () 함수, os.scandir () 함수 및 os.walk () 함수입니다. 이 자습서에서는 이러한 함수를 사용하여 Python에서 하위 디렉터리를 나열하는 방법을 보여줍니다.

Python에서glob모듈을 사용하여 하위 디렉토리 나열

glob모듈은 특정 패턴과 일치하는 경로 이름을 가져 오는 데 사용됩니다. Python의glob모듈 내에서glob()함수를 사용하여 디렉토리 경로 끝에/*/를 지정하여 지정된 기본 디렉토리의 모든 하위 디렉토리를 나열 할 수 있습니다. 다음 프로그램 스 니펫은glob모듈을 사용하여 기본 디렉토리 내의 모든 하위 디렉토리를 나열하는 방법을 보여줍니다.

import os
from glob import glob

glob(os.getcwd() + "/*/", recursive=True)

출력:

['/content/sample_data/', '/content/subdirectory/']

위 코드에서glob모듈을 사용하여 현재 작업 디렉토리의 모든 하위 디렉토리를 나열했습니다. 이 방법의 단점은 디렉토리 이름이 마침표.로 시작하는 숨겨진 디렉토리 나 디렉토리를 표시하지 않는다는 것입니다. 바로 아래의 하위 디렉터리 만 표시합니다.

Python에서os.scandir()함수를 사용하여 하위 디렉토리 나열

os는 파일 저장과 같은 많은 운영 체제 관련 기능에 사용할 수있는 Python 내장 모듈입니다. os.scandir()함수는 지정된 기본 디렉토리의 모든 하위 디렉토리를 나열하는 데 사용할 수 있습니다. 이 함수는 디렉토리 경로를 입력 매개 변수로 사용하고 경로 내의 파일 및 디렉토리를 반복하는 데 사용할 수있는 반복자를 리턴합니다.

다음 코드 스 니펫은os.scandir()함수를 사용하여 기본 디렉토리 내의 모든 하위 디렉토리를 나열하는 방법을 보여줍니다.

import os

[f.path for f in os.scandir(os.getcwd()) if f.is_dir()]

출력:

['/content/.config',
 '/content/.ipynb_checkpoints',
 '/content/sample_data',
 '/content/subdirectory']

위 코드에서os.scandir()함수를 사용하여 현재 작업 디렉토리의 모든 하위 디렉토리를 나열했습니다. 이 프로세스는 숨겨진 디렉토리 또는 디렉토리 이름이 마침표.로 시작하는 디렉토리도 나열하므로 이전 접근 방식에 비해 개선되었습니다. 이 방법의 유일한 단점은 기본 상위 디렉토리의 직계 하위 디렉토리 만 표시한다는 것입니다. 기본 디렉터리 내의 하위 하위 디렉터리를 가져 오지 않습니다.

Python에서os.walk()함수를 사용하여 하위 디렉토리 나열

os.walk()함수는 Python에서 단일 기본 디렉토리 내의 모든 하위 디렉토리를 나열하는 데 사용할 수있는 또 다른 방법입니다. os.walk()함수는 기본 디렉토리의 경로를 입력 매개 변수로 사용하고 튜플 세트를 반환합니다. 여기서 각 튜플의 첫 번째 요소는 디렉토리 트리 내의 하위 디렉토리 경로입니다. 여기에는 디렉터리 트리가 끝날 때까지 모든 하위 디렉터리와 해당 하위 디렉터리가 포함됩니다.

os.walk()함수는 또한 숨겨진 디렉토리 또는 디렉토리 이름이 마침표.로 시작하는 디렉토리를 제공합니다. 다음 코드 스 니펫은os.walk()함수를 사용하여 기본 디렉토리 내의 모든 하위 디렉토리를 나열하는 방법을 보여줍니다.

import os

[x[0] for x in os.walk(os.getcwd())]

출력:

['/content',
 '/content/.config',
 '/content/.config/logs',
 '/content/.config/logs/2021.05.06',
 '/content/.config/configurations',
 '/content/.ipynb_checkpoints',
 '/content/sample_data',
 '/content/sample_data/.ipynb_checkpoints',
 '/content/sample_data/subsubdirectory',
 '/content/subdirectory']

위의 프로그램에서os.scandir()함수를 사용하여 현재 작업 디렉토리의 모든 하위 디렉토리를 나열했습니다. 보시다시피 출력은 디렉토리 트리 내의 모든 디렉토리를 보여줍니다. 결과에는 모든 숨겨진 디렉토리도 포함됩니다.

os.walk()접근 방식이 모든 하위 디렉터리와 모든 숨겨진 디렉터리가있는 하위 하위 디렉터리를 보여 주지만 위에서 설명한 모든 방법은 고유 한 사용 사례를 가지고 있으며 다른 시나리오에서 유용합니다. 우리가 논의한 방법 중 가장 좋은 방법은 해결하려는 특정 문제에 따라 다릅니다.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

관련 문장 - Python Directory