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
[os(or os.path) Vs 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 |
댓글