Skip to content
toylee blog
toylee blog

컴퓨터·IT 문제 해결과 최신 기술 정보

  • 홈
  • 컴퓨터 활용
  • 프로그래밍
    • 파이썬
    • 자바(Java)
    • Flutter
    • HTML
    • Linux
    • 워드프레스
  • 맥북
  • IT 일반
  • 블로그 소개
  • 문의하기
toylee blog

컴퓨터·IT 문제 해결과 최신 기술 정보

파이썬 pathlib로 파일 다루기: os 모듈 대신 쓰는 실무 파일 경로 제어 요령

toylee, 2026년 09월 22일

파이썬에서 파일을 다룰 때 생기는 고민

파이썬으로 프로그램을 만들다 보면 파일 경로를 지정하고 폴더를 생성하거나 파일을 읽고 쓰는 작업을 자주 마주하게 됩니다. 과거에는 주로 os 모듈이나 os.path를 사용해 경로를 조작했습니다. 하지만 윈도우와 맥, 리눅스 등 운영체제마다 폴더 구분자가 달라 슬래시 방향이나 역슬래시 처리에서 골치 아픈 버그가 발생하곤 했습니다.

[목차]

  • 파이썬에서 파일을 다룰 때 생기는 고민
  • pathlib란 무엇이며 왜 써야 할까?
  • pathlib 기본 객체 생성과 경로 조합 방법
  • 자주 쓰는 파일 및 디렉터리 제어 기능
  • 디렉터리 내부 파일 목록 조회하기
  • 실무 활용 시 흔히 하는 실수 체크리스트
  • 마무리 요약

이번 글에서는 운영체제 차이를 알아서 흡수하고 직관적인 객체지향 방식으로 파일과 디렉터리를 다룰 수 있게 해주는 표준 라이브러리 pathlib의 핵심 사용법을 정리합니다. 이 글을 읽고 나면 복잡한 문자열 조합 대신 깔끔하고 안전한 코드로 파일 시스템을 제어할 수 있게 됩니다.

pathlib란 무엇이며 왜 써야 할까?

pathlib는 파이썬 3.4 버전부터 표준 라이브러리로 도입된 모듈입니다. 파일 경로를 단순한 문자열이 아니라 하나의 객체로 다루는 것이 가장 큰 특징입니다. 기존 os.path 방식과 비교했을 때 어떤 장점이 있는지 살펴봅니다.

  • 운영체제 독립성: 윈도우의 \와 맥/리눅스의 / 구분자를 자동으로 처리해 주어 코드가 플랫폼에 구애받지 않습니다.
  • 직관적인 연산자: 슬래시(/) 연산자를 사용해 경로를 아주 자연스럽게 이어 붙일 수 있습니다.
  • 가독성 향상: 파일 존재 여부 확인, 확장자 추출, 파일 읽기 쓰기 등의 작업을 메서드 체이닝 형태로 짧고 명확하게 작성할 수 있습니다.

pathlib 기본 객체 생성과 경로 조합 방법

pathlib를 사용하려면 먼저 모듈에서 Path 클래스를 가져와야 합니다. 현재 작업 디렉터리를 기준으로 경로 객체를 만들거나 특정 절대 경로를 지정할 수 있습니다.

경로를 조합할 때는 슬래시 연산자를 활용합니다. 문자열과 Path 객체를 혼용해도 알아서 올바른 경로 객체로 변환됩니다.

Path.cwd()는 현재 파이썬 스크립트가 실행되는 위치를 반환하며, 여기에 하위 폴더나 파일 이름을 슬래시로 연결하면 복잡한 os.path.join 함수를 대체할 수 있습니다.

자주 쓰는 파일 및 디렉터리 제어 기능

실무에서 가장 빈번하게 쓰이는 파일 제어 패턴을 코드로 살펴봅니다. 폴더 생성, 파일 존재 확인, 확장자 변경 등의 작업은 모두 Path 객체의 메서드로 해결됩니다.

  • 폴더 생성하기: Path('data').mkdir(parents=True, exist_ok=True) 코드는 상위 폴더가 없으면 함께 만들어 주고, 이미 폴더가 있어도 에러를 내지 않습니다.
  • 파일 존재 여부 확인: Path('config.json').is_file() 또는 exists()를 사용해 파일이나 디렉터리가 실제로 존재하는지 검사합니다.
  • 파일 이름과 확장자 분리: path.stem은 확장자를 제외한 파일명을, path.suffix는 확장자만 추출해 줍니다.
  • 파일 내용 읽고 쓰기: open() 함수를 열고 닫을 필요 없이 path.read_text(encoding='utf-8')과 path.write_text('내용')으로 간편하게 처리할 수 있습니다.

디렉터리 내부 파일 목록 조회하기

특정 폴더 안에 있는 파일들을 검색하거나 순회할 때도 pathlib는 강력한 기능을 제공합니다. iterdir() 메서드는 폴더 안의 모든 항목을 반환하며, glob()이나 rglob()을 사용하면 특정 패턴을 만족하는 파일만 골라낼 수 있습니다.

예를 들어 특정 폴더 아래의 모든 .csv 파일을 찾고 싶다면 Path('logs').glob('*.csv')와 같이 작성하면 됩니다. 하위 폴더까지 재귀적으로 탐색하고 싶다면 rglob()을 활용하면 편리합니다.

실무 활용 시 흔히 하는 실수 체크리스트

pathlib를 처음 도입할 때 개발자들이 자주 겪는 실수를 정리했습니다. 코드를 작성하기 전에 아래 항목들을 확인해 보세요.

  • 문자열과 객체의 혼동: 경로 객체는 문자열이 아닙니다. 내장 함수나 외부 라이브러리에서 문자열 경로를 요구할 때는 str(path_obj) 형태로 변환해야 할 수 있습니다.
  • 인코딩 누락: read_text()나 write_text()를 사용할 때 운영체제 기본 인코딩 차이로 한글 깨짐이 발생할 수 있으므로 encoding='utf-8'을 명시하는 것이 안전합니다.
  • 존재하지 않는 경로 조작: 파일 쓰기 전 상위 디렉터리가 실제로 존재하는지 확인하지 않고 바로 파일을 열면 FileNotFoundError가 발생하므로 mkdir(parents=True, exist_ok=True) 습관을 들여야 합니다.
  • 상대 경로 기준 혼동: 스크립트를 실행하는 터미널의 위치에 따라 Path('.')가 가리키는 실제 디렉터리가 달라질 수 있으므로, 스크립트 파일 자체의 위치를 기준으로 삼으려면 Path(__file__).resolve().parent를 사용하는 것이 안전합니다.

마무리 요약

지금까지 파이썬의 표준 라이브러리인 pathlib를 이용해 파일과 디렉터리를 다루는 방법을 살펴보았습니다. 운영체제 호환성 문제에서 벗어나 직관적인 슬래시 연산자와 강력한 메서드들을 활용하면 파일 제어 코드가 훨씬 간결해집니다. 오늘 배운 내용을 바탕으로 기존에 작성했던 os.path 기반의 코드를 하나씩 리팩토링해 보시길 권장합니다.

파이썬

글 탐색

Previous post

Related Posts

파이썬

파이썬 딕셔너리 (dictionary) 사용 방법

2023년 07월 02일

오늘은 파이썬 딕셔너리 (dictionary) 사용 방법에 대해 정리합니다. 딕셔너리는 파이썬에서 가장 중요한 데이터 타입 중 하나입니다. 데이터를 저장하고 관리 할 수 있습니다. 딕셔너리(Dictionary)는 키와 값으로 구성되며, 이는 리스트(list)나 튜플(tuple)과 같은 다른 데이터 타입과는 다릅니다. 딕셔너리의 키와 값은 중복이 허용되지 않습니다. 이는 다양한 데이터를 다룰 때 매우 유용합니다. 딕셔너리는 중괄호 {}를…

Read More
파이썬

Python Tkinter Menu 메뉴 기능

2023년 06월 14일

주요 구성 요소 중 하나는 개발자가 사용자 친화적인 메뉴 시스템을 응용 프로그램에 통합할 수 있는 메뉴입니다. Python Tkinter Menu 메뉴 기능, 전반적인 사용자 경험을 향상시키는 방법을 탐색하여 메뉴에 대해살펴보겠습니다.

Read More
파이썬

Qt Designer download

2024년 06월 24일

Qt Designer는 C++와 Python을 포함한 여러 프로그래밍 언어를 사용하는 개발자들에게 필요한 도구입니다. Qt Designer의 특징과 사용법, 설치 방법, 그리고 Qt Designer download 까지 자세히 알아보겠습니다.

Read More

최신 글

  • 파이썬 pathlib로 파일 다루기: os 모듈 대신 쓰는 실무 파일 경로 제어 요령
  • API 키 유출됐을 때 대처 순서, 깃허브에서 삭제만 하면 안 되는 이유
  • 마이크로 LED와 OLED 차이, 미니 LED와도 다른 이유
  • 원드라이브 파일 삭제하면 PC에서도 지워질까, 복원 전에 확인할 것
  • HBM이란 무엇일까, GPU와 함께 나오는 이유와 일반 램과의 차이

최신 댓글

보여줄 댓글이 없습니다.

보관함

  • 2026년 9월
  • 2026년 8월
  • 2026년 2월
  • 2025년 7월
  • 2025년 6월
  • 2025년 5월
  • 2025년 4월
  • 2025년 3월
  • 2025년 2월
  • 2025년 1월
  • 2024년 12월
  • 2024년 11월
  • 2024년 8월
  • 2024년 6월
  • 2024년 5월
  • 2024년 3월
  • 2024년 2월
  • 2023년 11월
  • 2023년 9월
  • 2023년 8월
  • 2023년 7월
  • 2023년 6월
  • 2023년 5월
  • 2023년 4월
  • 2023년 3월
  • 2023년 2월

카테고리

  • Flutter
  • HTML
  • IT 일반
  • Linux
  • 맥북
  • 워드프레스
  • 자바(Java)
  • 컴퓨터 활용
  • 파이썬
  • 프로그래밍

사이트 안내

  • 블로그 소개
  • 문의하기
  • 개인정보 처리방침
©2026 toylee blog | WordPress Theme by SuperbThemes