Moduł Mimetype Pythona nie jest szczególnie dokładny i opiera swoje wyniki na rozszerzeniu pliku. Jedynym sposobem mogę myśleć, aby uzyskać bardziej dokładny wynik jest wywołanie file
polecenia Unix z subprocess.Popen
jak tak:Lepsza, dokładniejsza detekcja typu MIME w Pythonie
import subprocess
mimetype = subprocess.Popen(['file', '/path/to/file', '--mime-type', '-b'],
stdout=subprocess.PIPE).stdout.read().strip()
to czuje nieeleganckie. Czy istnieje lepszy sposób na zrobienie tego bez konieczności wywoływania file
, ale nadal osiągając ten sam poziom dokładności?
Używa tego samego kodu identyfikacyjnego MIME co "plik". –
Prawda - ale jest bardziej elegancka, o co prosił. :) – Mads