23.Python pathlib 사용법 | 파일 경로를 더 쉽고 안전하게 다루는 방법
Python pathlib은 파일저도 처음에는 파일 경로를 문자열 더하기(+)나 f-string으로 대충 이어 붙여 사용했습니다. 내 윈도우 컴퓨터에서는 완벽하게 잘 실행되던 코드가, 다른 팀원의 맥(Mac)이나 리눅스 서버로 옮겨가기만 하면 귀신같이 경로 에러를 뿜어내며 터지곤 했죠. 슬래시('/')와 역슬래시('') 하나 때문에 밤새 코드를 뒤적거리며 3시간씩 원인을 찾느라 진을 빼곤 했습니다. 그러다 pathlib을 배우고 나서는 운영체제에 상관없이 경로를 훨씬 직관적이고 안전하게 관리할 수 있게 되었습니다. 지금은 새로운 파이썬 프로젝트를 시작할 때 0순위로 pathlib부터 불러오는 아주 좋은 습관이 생겼습니다.
과 폴더 경로를 객체처럼 다룰 수 있도록 만들어진 표준 라이브러리입니다. 과거에는 os.path를 주로
사용했지만, 현재는
pathlib이 더 직관적이고 가독성이 뛰어나 많은 개발자가 기본적으로 사용하는 방식입니다. 특히 python 프로젝트를 vscode에서 개발한다면 pathlib을 활용하면 운영체제에 관계없이 동일한 코드로 파일을 관리할 수 있습니다.
Python pathlib란 무엇인가?
pathlib를 사용하는 이유
pathlib은 파일 경로를 문자열이 아닌 객체(Object)로 다룰 수 있도록 설계되었습니다.
예를 들어 Windows에서는 \를 사용하고 Linux나 macOS에서는 /를 사용합니다. 문자열을 직접 이어 붙이면 운영체제마다 문제가 발생할 수 있지만 pathlib은 이러한 차이를 자동으로 처리합니다.
마치 내비게이션이 목적지만 입력하면 가장 적절한 길을 찾아주는 것처럼, pathlib도 운영체제에 맞는 경로를 알아서 만들어 줍니다.
또 다른 비유를 하자면, 주소를 손으로 직접 적는 것보다 주소록에서 선택하는 것이 훨씬 안전한 것과 같은 원리입니다.
pathlib의 장점
- Python 표준 라이브러리이므로 별도 설치가 필요 없습니다.
- Windows, Linux, macOS에서 동일하게 동작합니다.
- 코드의 가독성이 높아집니다.
- 파일 및 폴더 작업을 하나의 객체로 관리할 수 있습니다.
os.path보다 직관적인 문법을 제공합니다.
Path 객체 생성하기
기본 사용법
먼저 Path 클래스를 불러옵니다.
from pathlib import Path
현재 작업 디렉터리를 가져오는 방법입니다.
from pathlib import Path
current = Path.cwd()
print(current)
특정 파일을 지정하는 방법입니다.
from pathlib import Path
file_path = Path("data/sample.txt")
print(file_path)
Windows에서도 /를 그대로 사용할 수 있다는 점이 큰 장점입니다.
파일 경로 연결하기
기존에는 문자열을 이어 붙여야 했습니다.
import os
path = os.path.join("data", "sample.txt")
pathlib에서는 / 연산자를 사용하면 됩니다.
from pathlib import Path
path = Path("data") / "sample.txt"
print(path)
가독성이 훨씬 뛰어나고 실수도 줄일 수 있습니다.
pathlib로 파일과 폴더 다루기
파일 존재 여부 확인
from pathlib import Path
file = Path("sample.txt")
print(file.exists())
파일이 존재하면 True, 없으면 False를 반환합니다.
폴더 생성하기
from pathlib import Path
folder = Path("images")
folder.mkdir(exist_ok=True)
exist_ok=True를 사용하면 이미 폴더가 있어도 오류가 발생하지 않습니다.
파일 생성하기
from pathlib import Path
file = Path("example.txt")
file.touch()
빈 파일을 생성합니다.
파일 삭제하기
from pathlib import Path
file = Path("example.txt")
file.unlink()
삭제 전에 반드시 파일 존재 여부를 확인하는 것이 좋습니다.
pathlib로 파일 읽기와 쓰기
텍스트 파일 읽기
from pathlib import Path
file = Path("memo.txt")
text = file.read_text(encoding="utf-8")
print(text)
텍스트 파일 저장하기
from pathlib import Path
file = Path("memo.txt")
file.write_text("Hello Python!", encoding="utf-8")
별도의 open() 함수 없이도 간단하게 사용할 수 있습니다.
pathlib에서 자주 사용하는 기능
파일 이름만 가져오기
from pathlib import Path
file = Path("images/photo.jpg")
print(file.name)
결과
photo.jpg
확장자 확인하기
print(file.suffix)
결과
.jpg
파일명만 가져오기
print(file.stem)
결과
photo
부모 폴더 확인하기
print(file.parent)
모든 파일 검색하기
from pathlib import Path
folder = Path("images")
for file in folder.glob("*.jpg"):
print(file)
하위 폴더까지 검색하려면 다음과 같이 작성합니다.
for file in folder.rglob("*.jpg"):
print(file)
pathlib를 사용하면 좋은 이유
실제 자동화 프로젝트에서는 파일 경로를 다루는 작업이 매우 많습니다.
예를 들어 다음과 같은 프로젝트에서 pathlib은 거의 필수입니다.
- PDF 자동 정리 프로그램
- 이미지 일괄 변환 프로그램
- 웹 크롤링 데이터 저장
- OpenAI 결과 파일 저장
- 로그 파일 관리
특히 운영체제가 다른 환경에서도 동일한 코드가 실행되어야 하는 프로젝트라면 pathlib을 사용하는 것이 유지보수에 큰 도움이 됩니다.
핵심 요약
pathlib은 Python 표준 라이브러리입니다.- 운영체제별 경로 차이를 자동으로 처리합니다.
/연산자로 경로를 쉽게 연결할 수 있습니다.- 파일 생성, 삭제, 읽기, 쓰기를 간단하게 수행할 수 있습니다.
- 실무 프로젝트에서는
os.path보다pathlib사용이 권장됩니다.
마무리
pathlib은 단순히 파일 경로를 다루는 라이브러리가 아니라 Python 프로젝트의 코드 품질을 높여주는 중요한 도구입니다. 문자열로 경로를 직접 조작하는 방식보다 훨씬 안전하고 직관적이며, Windows와 Linux 환경을 모두 고려해야 하는 자동화 프로젝트에서 특히 큰 장점을 제공합니다.
앞으로 PDF 자동화, 웹 크롤링, OpenAI API 연동, 이미지 처리와 같은 프로젝트를 진행할 예정이라면 pathlib을 먼저 익혀 두는 것이 좋습니다. 작은 습관 하나가 프로젝트 규모가 커질수록 큰 차이를 만들어 내며, 유지보수와 확장성에서도 훨씬 유리한 코드를 작성할 수 있습니다.
댓글
댓글 쓰기