Appia의 IT세상

파이썬[Python, Pillow] 확장자를 이용하여 해당 파일 지원 포맷인지에 대한 확인하는 방법 본문

Python/Python 응용

파이썬[Python, Pillow] 확장자를 이용하여 해당 파일 지원 포맷인지에 대한 확인하는 방법

Appia 2021. 2. 19. 06:48
반응형

파이썬[Python, Pillow] 확장자를 이용하여 해당 파일 지원 포맷인지에 대한 확인하는 방법

파이썬[Python, Pillow] 확장자를 이용하여 해당 파일 지원 포맷인지에 대한 확인하는 방법

이번 포스팅은 Pillow을 모듈을 사용할 때, 지원하는 포맷인지에 대해서 확인하는 방법에 대해서 한번 알아보고자 합니다. 현재 기획하고 있는 부분중에 지원하는 포맷의 이미지가 있으면 관련된 부분에 대해서 일괄적으로 이미지를 변경하는 부분에 대해서 포스팅을 해보고자 합니다. 하지만, 그러기 위해서는 지원하는 부분에 대해서 선별이 필요합니다. 

 

그래서 이번 포스팅은 이와 같이 지원하는 파일 형식인지에 대해서 확인하는 방법에 대해서 이야기를 해보고자 합니다. 

먼저, Pillow에서 지원하는 형식을 출력해주는 기능이 별도로 존재하지는 않은 것으로 알고 있습니다. (물론, 최근에 PIL.feautre 모듈에서 관련된 기능이 제공된 것으로 알고 있지만, 현재 제가 잘 사용하지 않는 점에서 스킵하도록 하겠습니다.) 

 

그래서 지원하는 파일 형식의 확장자들을 별도로 나열해주는 리스트들을 생성할 것입니다. 그런 후에 관련된 부분에 대해서 확장자들을 판단해서 지원 여부를 결정하도록 하겠습니다. 그럼 먼저 코드를 살펴보겠습니다. 

import os
from PIL import Image

path = "D:\BlogProject\Pillow"

format = [".jpg",".png",".jpeg","bmp",".JPG",".PNG","JPEG","BMP"] # 지원하는 포맷확장자 나열
for (path,dirs,files) in os.walk(path):
    for file in files:
         if file.endswith(tuple(format)):
             print(path)
             print ("Valid",file)
         else:
             print(path)
             print("InValid",file)

위의 코드를 실행하면 다음과 같은 결과가 나타납니다. 

D:\BlogProject\Pillow
Valid 001.jpg
D:\BlogProject\Pillow
Valid 001.png
D:\BlogProject\Pillow
Valid 10year.PNG
...
D:\BlogProject\Pillow
InValid PIL_010_Check_Supported_Format.py
D:\BlogProject\Pillow
Valid Test.bmp
D:\BlogProject\Pillow
Valid watermark.jpg

 

즉, 위에서 보는 format이라는 리스트에 지원하는 형식의 파일 확장자들이 존재합니다. 그리고 "file.endswith(tuple(format))"을 이용하여 관련된 확장자만 추출하여 리스트에 존재하면, 지원하는 형식이고 존재하지 않으면 미지원 형식으로 간주합니다. 

파이썬[Python] 특정 경로에 있는 모든 파일과 디렉토리 출력하기(os.walk)

 

파이썬[Python] 특정 경로에 있는 모든 파일과 디렉토리 출력하기(os.walk)

이번에는 특정 폴더의 모든 파일과 디렉토리를 출력하는 방법에 대해서 살펴보고자 합니다. 앞서서 파일인지 디렉토리인지 확인 하는 방법을 가졌살펴봤습니다. 물론, 그 방법을 통해서도 모든

appia.tistory.com

이와 같은 방법으로 해당 파일 형식이 지원되는지에 대해서 선별할 수 있습니다. 이번 포스팅에서는 파이썬[Python, Pillow] 확장자를 이용하여 해당 파일 지원 포맷인지에 대한 확인하는 방법라는 주제로 포스팅을 해봤습니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 

 

반응형
Comments