<개인공부>/[Python]

[Python] 파이썬에서 파일 경로 다루기 (`os` vs `pathlib`)

BlockDMask 2025. 3. 25. 10:50
반응형

안녕하세요. BlockDMask 입니다.

오늘은 파이썬에서 파일 경로를 다룰 때 사용하는 두 가지 주요 모듈, ospathlib에 대해 알아보겠습니다.

파일을 다룰 때 경로를 조작하는 일은 자주 발생합니다. 예를 들어, 특정 폴더 내의 파일을 검색하거나, 경로를 조합하는 등의 작업이 필요할 수 있습니다.
이때 os 모듈과 pathlib 모듈을 어떻게 활용하면 좋을지 비교해보겠습니다.

 

 


1. os 모듈을 사용한 파일 경로 처리

os 모듈은 전통적으로 파일 및 디렉토리 작업을 처리하는 데 사용됩니다.
특히 os.path 하위 모듈을 활용하면 경로를 조작할 수 있습니다.

 

경로 합치기 (os.path.join)

import os

folder = "C:\\Users\\BlockDMask"
file_name = "example.txt"

full_path = os.path.join(folder, file_name)
print(full_path)  # C:\Users\BlockDMask\example.txt
  • os.path.join()을 사용하면 운영체제에 맞는 올바른 경로 구분자를 적용할 수 있습니다.

 

절대 경로 vs 상대 경로 (os.path.abspath)

relative_path = "data/sample.txt"
absolute_path = os.path.abspath(relative_path)
print(absolute_path)  # 절대 경로로 변환된 값 출력
  • os.path.abspath()를 사용하면 상대 경로를 절대 경로로 변환할 수 있습니다.

 

파일 존재 여부 확인 (os.path.exists)

file_path = "data/sample.txt"

if os.path.exists(file_path):
    print("파일이 존재합니다.")
else:
    print("파일이 존재하지 않습니다.")
  • os.path.exists()를 사용하면 해당 경로의 파일 또는 폴더가 존재하는지 확인할 수 있습니다.

 

 


2. pathlib 모듈을 사용한 파일 경로 처리

pathlib 모듈은 파이썬 3.4부터 도입된 파일 시스템 경로를 객체 지향적으로 다룰 수 있는 모듈입니다.
보다 직관적이고 가독성이 좋은 방식으로 파일 및 폴더 작업을 수행할 수 있습니다.

 

경로 합치기 (Path 객체 활용)

from pathlib import Path

folder = Path("C:/Users/BlockDMask")
file_name = "example.txt"

full_path = folder / file_name
print(full_path)  # C:/Users/BlockDMask/example.txt
  • Path 객체를 사용하면 / 연산자로 간편하게 경로를 조합할 수 있습니다.

 

절대 경로 변환 (Path.resolve)

relative_path = Path("data/sample.txt")
absolute_path = relative_path.resolve()
print(absolute_path)  # 절대 경로로 변환된 값 출력
  • Path.resolve()를 사용하면 현재 경로 기준의 절대 경로를 얻을 수 있습니다.

 

파일 존재 여부 확인 (Path.exists)

file_path = Path("data/sample.txt")

if file_path.exists():
    print("파일이 존재합니다.")
else:
    print("파일이 존재하지 않습니다.")
  • exists() 메서드를 사용하여 경로가 실제로 존재하는지 확인할 수 있습니다.

 

 


3. os.path vs pathlib 비교

기능 os.path pathlib
경로 합치기 os.path.join(a, b) Path(a) / b
절대 경로 변환 os.path.abspath(path) Path(path).resolve()
파일 존재 확인 os.path.exists(path) Path(path).exists()
디렉토리 생성 os.makedirs(path, exist_ok=True) Path(path).mkdir(parents=True, exist_ok=True)

 

 


4. 언제 os.pathpathlib을 사용할까?

os.path 사용 추천 상황

  • 기존 코드에서 os 기반의 파일 처리 방식을 유지해야 할 때
  • 여러 운영체제에서의 호환성을 고려할 때

 

pathlib 사용 추천 상황

  • 더 직관적이고 객체 지향적인 방식으로 코드를 작성하고 싶을 때
  • 파이썬 3.4 이상 버전을 사용할 때 (가독성과 유지보수성이 향상됨)

 

 


5. 결론

os.path는 전통적인 방식으로 파일 경로를 다루며, 기존 코드와의 호환성이 높습니다.
pathlib은 더 직관적이고 객체 지향적인 방식으로 파일 경로를 다룰 수 있습니다.
✅ 최신 파이썬에서는 pathlib을 사용하는 것이 가독성과 유지보수 측면에서 더 유리합니다.

이제 여러분도 ospathlib을 적절히 활용하여 효율적인 파일 경로 관리 코드를 작성해 보세요! 😊

 

 


이상, 파이썬에서 파일 경로 다루기 (os vs pathlib)에 대해서 적어보았습니다.
오늘도 읽어주셔서 감사합니다!

반응형