Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 특정 디렉토리에 하위 디렉토리가 포함되어 있는지 확인하는 방법

특정 디렉토리 안에 다른 디렉토리(하위 폴더)가 존재하는지 확인하는 가장 간단한 방법은 문제를 뒤집어 생각하는 것입니다. 즉, os.path.isfile 메서드를 사용해 해당 경로 안에 '파일이 아닌 항목'이 있는지 검사하면 됩니다.

방법 1: isfile()을 활용한 반복문 확인

디렉토리 내의 모든 항목을 순회하면서 파일이 아닌 항목이 발견되면 그것이 곧 하위 디렉토리라는 의미입니다. 다음 예제를 살펴보세요.

import os
list_dir = os.listdir('.')
for f in list_dir:
    if not os.path.isfile(os.path.join('.', f)):
        print("Not a file")

위 코드는 현재 디렉토리('.')의 모든 항목을 os.listdir()로 가져온 뒤, 각 항목에 대해 os.path.isfile()로 파일 여부를 검사합니다. 파일이 아니라면 "Not a file"을 출력하는데, 이는 곧 하위 디렉토리가 존재한다는 뜻입니다.

방법 2: all() 내장 함수 활용하기

코드를 더 간결하게 작성하고 싶다면 파이썬의 내장 함수인 all()을 활용할 수 있습니다.

import os
list_dir = [os.path.isfile(os.path.join('.', f)) for f in os.listdir('.')]
print(all(list_dir))

이 코드는 리스트 컴프리헨션으로 각 항목이 파일인지 여부를 불리언 값으로 담은 리스트를 만들고, all()에 전달합니다.

all() 함수의 동작 원리

all() 함수는 전달받은 iterable의 모든 요소가 True일 때만 True를 반환합니다. 따라서 주어진 디렉토리 내의 모든 항목이 파일이라면 True가 출력되고, 하나라도 디렉토리가 섞여 있다면 False가 반환됩니다. 즉, 결과가 False라면 해당 디렉토리에 하위 디렉토리가 포함되어 있다는 것을 의미합니다.