Python에서는 mimetypes라는 표준 모듈을 사용해 파일의 MIME 유형을 추측할 수 있습니다. 다만 이 방식은 파일 확장자에 기반하여 판단하기 때문에, 실제 파일 내용과 일치하지 않을 수 있어 신뢰도가 떨어진다는 점에 유의해야 합니다.
mimetypes 모듈 사용하기
mimetypes 모듈의 guess_type() 메서드를 호출하면 파일 이름(확장자)을 바탕으로 MIME 유형을 반환합니다.
>>> import mimetypes
>>> print(mimetypes.MimeTypes().guess_type('my_file.txt')[0])
text/plain
위 예제에서는 my_file.txt라는 파일이 text/plain으로 판별되었습니다. 하지만 확장자가 없거나 잘못된 확장자를 가진 파일의 경우 정확한 결과를 얻기 어렵습니다.
python-magic 라이브러리 사용하기
보다 정확하게 파일의 실제 내용을 분석해 MIME 유형을 판별하려면 비표준 라이브러리인 python-magic을 사용할 수 있습니다. 이 라이브러리는 libmagic을 기반으로 파일 시그니처를 검사하므로 확장자와 무관하게 신뢰도 높은 결과를 제공합니다.
먼저 pip로 라이브러리를 설치합니다.
pip install python-magic
설치 후 다음과 같이 사용할 수 있습니다.
>>> import magic
>>> mime = magic.Magic(mime=True)
>>> mime.from_file("my_file.txt")
text/plain
Magic(mime=True) 옵션을 지정하면 사람이 읽기 쉬운 형식 대신 MIME 문자열 형태로 결과를 받을 수 있습니다. Windows 환경에서는 추가로 libmagic DLL 설치가 필요할 수 있으니 참고하세요.