Liaisons Python avec libmagic
Toutes les différentes réponses sur ce sujet sont très déroutantes, j'espère donc donner un peu plus de clarté avec cet aperçu des différentes liaisons de libmagic. Auparavant, mammadori a donné une brève réponse énumérant l'option disponible.
libmagic
Lors de la détermination d'un fichier de type mime, l'outil de choix est simplement appelé file
et son back-end est appelé libmagic
. (Voir la page d'accueil du projet .) Le projet est développé dans un référentiel cvs privé, mais il existe un miroir git en lecture seule sur github .
Maintenant, cet outil, dont vous aurez besoin si vous souhaitez utiliser l'une des liaisons libmagic avec python, est déjà livré avec ses propres liaisons python appelées file-magic
. Il n'y a pas beaucoup de documentation dédié pour eux, mais vous pouvez toujours jeter un oeil à la page de manuel de la bibliothèque C: man libmagic
. L'utilisation de base est décrite dans le fichier 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)
En dehors de cela, vous pouvez également utiliser la bibliothèque en créant un Magic
objet en utilisant magic.open(flags)
comme indiqué dans le fichier d'exemple .
Les deux toivotuo et l' utilisation ewr2san ces file-magic
fixations incluses dans l' file
outil. Ils supposent à tort qu'ils utilisent le python-magic
package. Cela semble indiquer que si les deux file
et python-magic
sont installés, le module python se magic
réfère à l'ancien.
python-magie
C'est la bibliothèque dont parle Simon Zimmermann dans sa réponse et qui est également employée par Claude COULOMBE ainsi que Gringo Suave .
filemagic
Remarque : ce projet a été mis à jour pour la dernière fois en 2013!
En raison du fait qu'elle est basée sur le même c-api, cette bibliothèque présente une certaine similitude avec l' file-magic
inclusion dans libmagic
. Il n'est mentionné que par mammadori et aucune autre réponse ne l'emploie.