Прив’язки пітона до лібмагічних
Усі різні відповіді на цю тему дуже заплутані, тому я сподіваюся дати трохи більше ясності в цьому огляді різних прив’язок лібмагічних. Раніше мамадорі дав коротку відповідь, перелічивши доступний варіант.
лібмагічний
Визначаючи файли mime-типу, інструмент вибору просто називається fileі називається його зворотним libmagic. (Див. Домашню сторінку проекту .) Проект розроблений у приватному cvs-сховищі, але на github є дзеркало для читання лише для читання .
Тепер цей інструмент, який вам знадобиться, якщо ви хочете використовувати будь-яке з лібмагічних прив'язок з python, уже поставляється з власними прив'язками python file-magic. Існує не так багато присвячених документацій для них, але ви завжди можете подивитися на людей сторінці з-бібліотеці: 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посилається на попередній.
пітон-магія
Це бібліотека, про яку розповідає Саймон Цимерман у своїй відповіді, і яку також використовують Клод КУЛЬМБЕ , а також Грінго Суаве .
filemagic
Примітка : Цей проект востаннє оновлений у 2013 році!
Завдяки тому, що базується на одній c-api, ця бібліотека має деяку схожість із file-magicвключеною в libmagic. Це згадується лише мамадорі, і жодної іншої відповіді це не використовує.