본문 바로가기
Artificial Intelligence/60. Python

[PYTHON] pathlib으로 더 똑똑하게 파일 처리하기

by Papa Martino V 2025. 7. 26.
728x90

pathlib으로 더 똑똑하게 파일 처리하기
[PYTHON] pathlib

 

 

Python의 pathlib 모듈은 파일과 디렉토리 경로를 객체 지향적으로 다룰 수 있게 해주는 표준 라이브러리입니다. 기존의 os.path 방식보다 가독성이 높고 직관적이기 때문에, 최근에는 많은 개발자들이 pathlib을 선호하고 있습니다.

pathlib이란?

pathlib은 Python 3.4부터 표준 라이브러리로 포함된 모듈로, Path 클래스를 중심으로 경로 조작과 파일 입출력을 효율적으로 수행할 수 있습니다.

기본 사용법

from pathlib import Path

# 현재 디렉토리 기준
current = Path('.')

# 특정 파일 경로 생성
file_path = current / 'data' / 'example.txt'
print(file_path.resolve())

pathlib의 주요 기능

  • 경로 객체화 (Path 객체)
  • 파일 존재 여부 확인
  • 파일 생성 및 삭제
  • 디렉토리 순회
  • 텍스트 파일 읽기/쓰기
  • 확장자 추출 등 다양한 유틸리티

기존 os.path과의 차이점

기능 os.path 방식 pathlib 방식
경로 결합 os.path.join('a', 'b') Path('a') / 'b'
파일 존재 여부 os.path.exists(path) Path(path).exists()
디렉토리 생성 os.makedirs(path) Path(path).mkdir(parents=True, exist_ok=True)
텍스트 읽기 open(path).read() Path(path).read_text()
텍스트 쓰기 open(path, 'w').write(text) Path(path).write_text(text)

실전 예제

1. 디렉토리 생성 및 파일 쓰기

from pathlib import Path

data_dir = Path('data')
data_dir.mkdir(exist_ok=True)

file = data_dir / 'hello.txt'
file.write_text("안녕하세요, pathlib을 사용한 예제입니다!")

2. 파일 존재 여부 및 삭제

if file.exists():
    print("파일이 존재합니다.")
    file.unlink()  # 파일 삭제

3. 디렉토리 내 파일 목록 순회

for txt_file in data_dir.glob('*.txt'):
    print(txt_file.name)

pathlib의 고급 기능

  • rglob(): 하위 디렉토리까지 포함한 재귀적 탐색
  • with_suffix(): 확장자 변경
  • with_name(): 파일명 변경
  • stat(): 파일의 메타데이터 확인 (크기, 수정일 등)

성능과 확장성

pathlib은 가독성과 코드 유지보수성 측면에서 큰 장점을 제공합니다. 특히 대규모 파일 처리 또는 프로젝트 구조 관리가 필요한 경우 코드 품질 향상에 큰 기여를 합니다.

결론

pathlib은 파일 처리의 패러다임을 바꾸는 도구입니다. 명령형 방식에서 객체 지향적인 방식으로 전환함으로써 코드의 명확성과 재사용성이 향상됩니다. 이제부터는 os.path이 아닌 pathlib을 사용하는 습관을 들여보세요.

출처

728x90