Powiązania Pythona z libmagic
Wszystkie różne odpowiedzi na ten temat są bardzo mylące, więc mam nadzieję, że dam nieco więcej jasności dzięki przeglądowi różnych powiązań libmagic. Wcześniej mammadori udzielił krótkiej odpowiedzi listą dostępnej opcji.
libmagic
Podczas określania typu pliku MIME wybrane narzędzie jest po prostu wywoływane file
i wywoływane jest jego zaplecze libmagic
. (Zobacz stronę główną projektu .) Projekt jest rozwijany w prywatnym repozytorium cvs, ale na github znajduje się tylko do odczytu mirror git .
Teraz to narzędzie, które będzie potrzebne, jeśli chcesz używać dowolnego z powiązań libmagic z pythonem, ma już swoje własne, zwane powiązania z pythonem file-magic
. Nie ma zbyt wiele dedykowana dokumentacja dla nich, ale zawsze można rzucić okiem na stronę man c-biblioteki: man libmagic
. Podstawowe użycie opisano w pliku readme :
import magic
detected = magic.detect_from_filename('magic.py')
print 'Detected MIME type: {}'.format(detected.mime_type)
print 'Detected encoding: {}'.format(detected.encoding)
print 'Detected file type name: {}'.format(detected.name)
Oprócz tego możesz również korzystać z biblioteki, tworząc Magic
obiekt za pomocą, magic.open(flags)
jak pokazano w przykładowym pliku .
Zarówno toivotuo, jak i ewr2san używają tych file-magic
wiązań zawartych w file
narzędziu. Błędnie zakładają, że używają python-magic
pakietu. Wydaje się to wskazywać, że jeśli oba file
i python-magic
są instalowane, moduł python magic
odnosi się do tej pierwszej.
python-magic
Jest to biblioteka, o której mówi Simon Zimmermann w swojej odpowiedzi i która jest również wykorzystywana przez Claude'a COULOMBE, a także Gringo Suave .
filemagiczny
Uwaga : ten projekt został ostatnio zaktualizowany w 2013 roku!
Ponieważ ta biblioteka oparta jest na tym samym c-api, ma pewne podobieństwo z file-magic
zawartą w libmagic
. Wspomina o tym tylko mammadori i żadna inna odpowiedź go nie stosuje.