-
파이썬 os 모듈(os 또는 os.path)과 pathlib 모듈 비교코딩 연습 2022. 6. 6. 22:05
[파이썬기초예제] 파이썬 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 [os(or os.path) Vs pathlib]
os 함수와 pathlib 함수 ※ os 함수와 같은 기능을 하는 PurePath/Path 함수 더 알아보기(링크된 페이지 하단에 비교표 있음)
'코딩 연습' 카테고리의 다른 글
파이썬 장고로 주소록 만들기 [장고 기초 예제] (0) 2022.06.17 웹 브라우저 새로고침(F5) 시 데이터 전송 안 되게 하는 문제 (0) 2022.06.16 파이썬 클래스 연습 - 게임 아이템의 종류 구입, 사용, 버리기 메서드 (0) 2022.06.05 파이썬 클래스 연습 - 이즈리얼, 리신, 몬스터 예시로 알아보기 (0) 2022.06.04 엑셀 파일 병합하기 - openpyxl 활용 (0) 2022.06.01