Mô-đun mimetypes của Python không phải là đặc biệt chính xác và dựa trên kết quả của nó trên phần mở rộng của tệp. Cách duy nhất tôi có thể nghĩ ra để có được một kết quả chính xác hơn là để gọi Unix file
lệnh với subprocess.Popen
như vậy:Phát hiện loại mime chính xác hơn, tốt hơn trong Python
import subprocess
mimetype = subprocess.Popen(['file', '/path/to/file', '--mime-type', '-b'],
stdout=subprocess.PIPE).stdout.read().strip()
này cảm thấy không thanh nha. Có cách nào tốt hơn để thực hiện điều này mà không cần phải gọi file
nhưng vẫn đạt được cùng một mức độ chính xác không?
Điều này sử dụng mã nhận dạng MIME giống như 'tệp'. –
Đúng - nhưng nó thanh lịch hơn, đó là những gì anh ta yêu cầu. :) – Mads