HOWTO · Python

Python에서 부모 디렉터리 가져 오기

이 튜토리얼은 Python에서 경로의 상위 디렉토리를 가져 오는 방법을 보여줍니다.

이 페이지의 내용

이 튜토리얼은 Python에서 경로의 상위 디렉토리를 가져 오는 다양한 방법을 설명합니다. 상위 디렉토리는 지정된 디렉토리 또는 파일 바로 위에 있는 디렉토리입니다. 예를 들어 C:\folder\subfolder\myfile.txt 경로의 상위 디렉토리는 C:\folder\subfolder입니다. 루트 디렉토리를 제외한 모든 디렉토리에는 서로 다른 상위 디렉토리가 있습니다. 루트 디렉토리의 상위는 루트 디렉토리 자체입니다.

Path.parent로 경로의 상위 디렉터리 가져오기

pathlib 모듈은 경로를 Path 객체로 나타냅니다. 이 객체의 parent 속성은 경로의 논리적 상위를 또 다른 Path 객체로 제공합니다. 상위를 문자열로 필요하면 str()로 감싸세요. 호출할 것도, 전달할 인수도 없습니다. 구성한 Path에서 속성을 읽기만 하면 됩니다.

아래 예제 코드는 parent 속성을 사용하여 Python에서 경로의 상위 디렉토리를 가져오는 방법을 보여줍니다.

from pathlib import Path

path1 = Path(r"C:\folder\subfolder\myfile.txt")
path2 = Path(r"C:\Myfile.txt")
print(path1.parent)
print(path2.parent)

출력:

C:\folder\subfolder
C:\

os.path.join()과 함께 os.pardir 사용하기

os.pardir는 상위 디렉토리를 가리키는 상수 문자열입니다. Windows와 macOS를 포함한 POSIX 시스템 모두에서 '..'입니다.

지정된 경로와 os.pardir를 os.path.join() 함수로 결합하고 그 결과를 os.path.abspath()로 정규화하면 지정된 경로의 상위 디렉토리를 얻을 수 있습니다.

아래 예제 코드는 os.pardir와 os.path.join()을 사용하여 경로의 상위 디렉토리를 가져오는 방법을 보여줍니다.

import os.path

path1 = r"C:\folder\subfolder\myfile.txt"
path2 = r"C:\Myfile.txt"

print(os.path.abspath(os.path.join(path1, os.pardir)))
print(os.path.abspath(os.path.join(path2, os.pardir)))

출력:

C:\folder\subfolder
C:\

위에서 언급한 것처럼 os.pardir를 '..'로 대체해도 같은 결과를 얻을 수 있습니다.

import os.path

path1 = r"C:\folder\subfolder\myfile.txt"
path2 = r"C:\Myfile.txt"

print(os.path.abspath(os.path.join(path1, "..")))
print(os.path.abspath(os.path.join(path2, "..")))

출력:

C:\folder\subfolder
C:\

os.path.dirname()으로 경로의 상위 디렉터리 가져오기

os.path.dirname()은 경로 문자열을 입력으로 받아 경로의 디렉토리 부분, 즉 마지막 경로 구분 기호까지의 모든 부분을 반환하는 함수입니다. 파일을 가리키는 경로의 경우 그 디렉토리 부분이 상위 디렉토리이며 문자열로 반환됩니다.

아래 예제 코드는 os.path.dirname()을 사용하여 경로의 상위 디렉토리를 가져오는 방법을 보여줍니다.

import os.path

path1 = r"C:\folder\subfolder\myfile.txt"
path2 = r"C:\Myfile.txt"

print(os.path.dirname(path1))
print(os.path.dirname(path2))

출력:

C:\folder\subfolder
C:\