728x90
반응형
파이썬에서 파일 확장자를 분리하려면, os.path.splitext() 함수를 이용하면 됩니다.
splitext() 함수를 이용하는 방법은 다음과 같습니다.
from os.path import splitext
print(f"{splitext('bar')=}")
print(f"{splitext('foo.bar.exe')=}")
print(f"{splitext('/foo/bar.exe')=}")
print(f"{splitext('.cshrc')=}")
print(f"{splitext('/foo/....jepg')=}")
print(f"{splitext('/foo/...a.jepg')=}")
print(f"{splitext('/foo/...a....jepg')=}")
print(f"{splitext('/foo/a....jepg')=}")
print(f"{splitext('')=}")
print(f"{splitext(None)=}")
실행한 결과는 다음과 같습니다.
splitext('bar')=('bar', '')
splitext('foo.bar.exe')=('foo.bar', '.exe')
splitext('/foo/bar.exe')=('/foo/bar', '.exe')
splitext('.cshrc')=('.cshrc', '')
splitext('/foo/....jepg')=('/foo/....jepg', '')
splitext('/foo/...a.jepg')=('/foo/...a', '.jepg')
splitext('/foo/...a....jepg')=('/foo/...a...', '.jepg')
splitext('/foo/a....jepg')=('/foo/a...', '.jepg')
splitext('')=('', '')
Traceback (most recent call last):
File "D:\Dev\Python\python-test\general\os\split_ext.py", line 16, in
print(f"{splitext(None)=}")
File "C:\Dev\Python\Python310\lib\ntpath.py", line 230, in splitext
p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not NoneType
위 결과에서 보이는 바와 같이, splitext() 함수는 확장자와 그 외 부분을 분리해 주는 함수입니다.
폴더 경로가 포함되어 있다고 파일 이름만 따로 분리하지 않습니다.
경로가 포함된 것이 첫 번째 항목에 들어가고, 분리된 확장자가 두 번째 항목에 들어갑니다.
그래서 결과가 2개의 항목을 갖는 tuple로 반환됩니다.
또한 확장자 분리에 주의해서 보셔야할 부분이 "...." 등으로 이루어진 파일명들로
".....ext"인 파일명은 확장자가 별도로 분리되지 못하고, "....ㅁ.ext" 과 같이 파일명에 확장자 구분용 "." 문자 앞에 "." 이외의 문자가 있어야만 확장자로 분리가 됩니다.
마지막으로 None을 입력하면 "TypeError"가 발생하니 주의가 필요합니다.
참고자료
"os.path — 일반적인 경로명 조작":https://docs.python.org/ko/3/library/os.path.html
'프로그래밍 > Python' 카테고리의 다른 글
[Python] 변수 할당 (0) | 2022.02.11 |
---|---|
[Python] 내장 함수를 이용한 텍스트 파일 다루기 (0) | 2022.02.09 |
[Python] OpenCV를 활용한 카메라 영상 저장 - 1 (0) | 2022.01.08 |
[Python] OpenCV를 활용한 카메라 영상 출력 - 2(FPS 표시) (0) | 2022.01.05 |
[Python] OpenCV 설치 및 카메라 영상 출력 - 1 (0) | 2022.01.04 |