Привязки Python к libmagic
Все разные ответы по этой теме очень запутаны, поэтому я надеюсь дать немного большей ясности в этом обзоре различных привязок libmagic. Ранее mammadori дал короткий ответ , перечисляющий доступную опцию.
libmagic
При определении MIME-типа файлов выбранный инструмент просто называется file
, а его серверная часть называется libmagic
. (См. Домашнюю страницу Project .) Проект разработан в частном cvs-репозитории, но на github .
есть git-зеркало
только для чтения.
Теперь этот инструмент, который вам понадобится, если вы хотите использовать какие-либо связки libmagic с python, уже поставляется с собственными привязками python, которые называются
file-magic
. Для них не так много специальной документации, но вы всегда можете взглянуть на справочную страницу библиотеки c:
man libmagic
. Основное использование описано в файле
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)
Кроме того, вы также можете использовать библиотеку, создав объект Magic
, используя magic.open(flags)
, как показано в файле примера .
Оба toivotuo и ewr2san используют эти file-magic
привязки, включенные в инструмент file
. Они ошибочно предполагают, что используют пакет python-magic
. Это указывает на то, что если установлены оба file
и python-magic
, модуль python magic
ссылается на предыдущий.
питон-магия
Это библиотека, о которой говорит Саймон Циммерман в его ответе , и которая также используется Клодом КУЛОМБОМ и Gringo Suave .
filemagic
Примечание : последний раз проект был обновлен в 2013 году!
Поскольку эта библиотека основана на одном и том же c-api, она имеет некоторое сходство с file-magic
, включенным в libmagic
. Это упоминается только mammadori , и никакой другой ответ не использует его.