파이썬에서 홈 디렉터리(home directory) 경로를 확인해야 할 때가 종종 있습니다. 예를 들어 설정 파일을 저장하거나, 사용자별 데이터에 접근하거나, 스크립트 내에서 절대 경로를 동적으로 구성할 때 유용합니다. 이 글에서는 파이썬으로 홈 디렉터리를 찾는 대표적인 세 가지 방법을 소개합니다.
1. os.path.expanduser() 사용하기
가장 널리 쓰이는 방법은 os 모듈의 os.path.expanduser('~') 함수를 활용하는 것입니다. 이 함수는 경로 문자열에 포함된 ~(틸드) 기호를 실제 홈 디렉터리 경로로 확장해 줍니다.
import os
print(os.path.expanduser('~'))특히 이 함수의 장점은 ~/Documents/my_folder/처럼 홈 디렉터리 하위의 더 긴 경로에도 그대로 적용할 수 있다는 점입니다.
import os
print(os.path.expanduser('~/Documents/my_folder'))만약 경로에 ~ 기호가 포함되어 있지 않다면, 함수는 입력받은 경로를 아무 변경 없이 그대로 반환합니다. 따라서 일반적인 경로 처리 로직에 안전하게 섞어 사용할 수 있습니다.
2. 환경 변수 HOME 조회하기
운영체제의 환경 변수에서 HOME 값을 직접 읽어오는 방법도 있습니다. 리눅스나 macOS처럼 HOME 환경 변수가 표준적으로 설정되어 있는 시스템에서 간단하게 사용할 수 있습니다.
import os print(os.environ['HOME'])
다만 Windows 환경에서는 HOME 대신 USERPROFILE이 사용되는 경우가 많으므로, 크로스 플랫폼 코드를 작성할 때는 주의가 필요합니다. 이런 경우에는 첫 번째 방법인 os.path.expanduser()가 더 안전한 선택입니다.
3. pathlib.Path.home() 사용하기 (파이썬 3.4 이상)
파이썬 3.4 이상을 사용하고 있다면, 객체 지향 방식으로 파일 시스템을 다루는 pathlib 모듈을 활용하는 것이 좋습니다. Path.home() 메서드를 호출하면 홈 디렉터리를 Path 객체로 바로 얻을 수 있습니다.
from pathlib import Path print(Path.home())
pathlib 방식은 반환값이 문자열이 아닌 Path 객체이기 때문에, 경로 결합(/ 연산자), 파일 존재 여부 확인 등 후속 작업을 훨씬 직관적으로 처리할 수 있다는 장점이 있습니다.
정리
- 간단하고 호환성이 높은 방법:
os.path.expanduser('~') - 환경 변수를 직접 활용하는 방법:
os.environ['HOME'] - 모던한 객체 지향 방식(파이썬 3.4+):
pathlib.Path.home()
새 프로젝트라면 가독성과 편의성이 뛰어난 pathlib 방식을 권장하며, 기존 코드와의 호환이 중요하거나 간단한 문자열 경로가 필요하다면 os.path.expanduser()를 사용하는 것이 좋습니다.