본문 바로가기
코딩 연습

파이썬 os 모듈(os 또는 os.path)과 pathlib 모듈 비교

by good4me 2022. 6. 6.

goodthings4me.tistory.com

[파이썬기초예제] 파이썬 3.4 버전부터 표준 라이브러리(내장 함수)로 추가된 pathlib는 파일시스템 경로, 파일 찾기 등에 대해 단순 문자열이 아닌 객체로 받아 처리하는 함수이다. 기존 os 모듈과의 차이는 어떤지 정리해본다.

 

 

os 모듈 vs pathlib 모듈

os 모듈 기능 pathlib 모듈
os.getcwd() 현재 디렉토리 가져오기 pathlib.Path.cwd()
os.path.exists() 경로 존재 확인 pathlib.Path.exists()
os.path.basename() 파일명만 가져오기 pathlib.PurePath().name
os.path.dirname() 디렉토리명 가져오기 pathlib.PurePath().parent
os.path.join() 경로 연결 pathlib.PurePath().joinpath()
os.path.isdir() 디렉토리 여부 pathlib.Path.is_dir()
os.path.isfile() 파일 여부 pathlib.Path.is_file()
os.path.splitext() 확장자 분리 pathlib.PurePath().suffix

 

[사용 예시]

import os
import pathlib

print(os.getcwd())
# D:\pythonDev
print(pathlib.Path())
# .
print(pathlib.Path.cwd())
# D:\pythonDev

dir_file = r'D:\pythonDev\filename'

print(os.path.exists(dir_file))
# True
print(pathlib.Path.exists(pathlib.Path(dir_file)))
# True
## pathlib.Path.exists(dir_file) 시 
# AttributeError: 'str' object has no attribute 'stat' 에러 발생
# pathlib.Path(dir_file) 형태로 주어야 에러 안남

print(os.listdir(dir_file))
# ['test1.png', 'test2.png']
print(os.path.basename(os.listdir(dir_file)[0]))
# test1.png
print(pathlib.PurePath(os.listdir(dir_file)[0]).name)
# test1.png

print(os.path.dirname(dir_file))
# D:\pythonDev
print(pathlib.PurePath(dir_file).parent)
# D:\pythonDev

print(os.path.join(dir_file, 'abc'))
# D:\pythonDev\filename\abc
print(pathlib.PurePath(dir_file).joinpath('abc'))
# D:\pythonDev\filename\abc

print(os.path.isdir(dir_file))
# True
print(pathlib.Path.is_dir(pathlib.Path(dir_file)))
# True

print(os.path.isfile(dir_file))
# False
print(os.path.isfile(r'D:\pythonDev\filename\test1.png'))
# True
print(pathlib.Path.is_file(pathlib.Path(dir_file)))
# False
print(pathlib.Path.is_file(pathlib.Path(r'D:\pythonDev\filename\test1.png')))
# True

print(os.path.splitext(r'D:\pythonDev\filename\test1.png'))
# ('D:\\pythonDev\\filename\\test1', '.png')
print(os.path.splitext(os.listdir(dir_file)[0]))
# ('test1', '.png')
print(pathlib.PurePath(r'D:\pythonDev\filename\test1.png').suffix)
# .png
print(pathlib.PurePath(os.listdir(dir_file)[0]).suffix)
# .png

 

pathlib
pathlib

 

good4me.co.kr

 

[os(or os.path) Vs pathlib]

os 함수와 pathlib 함수
os 함수와 pathlib 함수

※ os 함수와 같은 기능을 하는 PurePath/Path 함수 더 알아보기(링크된 페이지 하단에 비교표 있음)

 

 

 

댓글