libmagic 라이브러리 사용법 (libmagic Library Guide)
미디어 타입(media type), MIME 타입(MIME type)
1. 라이브러리 설치
실행환경 : windows 10
pip install libmagic
pip install python-magic-bin
실행환경 : linux
pip install libmagic
pip install python-magic
- libmagic : 파일타입을 MIME 타입으로 확인해주는 라이브러리
- python-magic-bin : 윈도우용 magic 라이브러리
- python-magic : 리눅스용 magic 라이브러리
2. 예제 코드
import magic
r1 = magic.from_file("test1.txt")
r2 = magic.from_file("test1.txt", mime=True)
print(f"filetype = {r1}, \nmime = {r2}")
# filetype = UTF-8 Unicode text, with CRLF line terminators,
# mime = text/plain
file_data = open('test1.txt', 'r').read(1024)
r3 = magic.from_buffer(file_data)
r4 = magic.from_buffer(file_data, mime=True)
print(f"filetype = {r3}, \nmime = {r4}")
UnicodeDecodeError 에러 발생시
UnicodeDecodeError: 'cp949' codec can't decode byte 0xd3 in position 23: illegal multibyte sequence
file open encoding 지정하여 디코딩 가능하도록 코드 수정
file_data = open('test1.txt', 'r', encoding='UTF-8').read(1024)
r3 = magic.from_buffer(file_data)
r4 = magic.from_buffer(file_data, mime=True)
print(f"filetype = {r3}, \nmime = {r4}")
# filetype = data,
# mime = application/octet-stream