Ligações Python ao libmagic
Todas as respostas diferentes sobre este tópico são muito confusas, então espero dar um pouco mais de clareza com esta visão geral das diferentes ligações da libmagic. Anteriormente, mammadori deu uma resposta curta listando a opção disponível.
libmagic
Ao determinar um tipo MIME de arquivos, a ferramenta de escolha é simplesmente chamada file
e seu back-end é chamado libmagic
. (Veja a página inicial do projeto .) O projeto é desenvolvido em um repositório cvs privado, mas há um espelho git somente leitura no github .
Agora, esta ferramenta, que você precisará se desejar usar qualquer uma das ligações libmagic com python, já vem com suas próprias ligações python chamadas file-magic
. Não há muita documentação dedicado para eles, mas você pode sempre ter um olhar para a página do manual do c-biblioteca: man libmagic
. O uso básico é descrito no arquivo leia - me :
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)
Além disso, você também pode usar a biblioteca criando um Magic
objeto usando magic.open(flags)
como mostrado no arquivo de exemplo .
O toivotuo e o ewr2san usam essas file-magic
ligações incluídas na file
ferramenta. Eles assumem erroneamente que estão usando o python-magic
pacote. Isso parece indicar que, se ambos file
e python-magic
estiverem instalados, o módulo python magic
se refere ao anterior.
python-magic
Esta é a biblioteca que Simon Zimmermann fala em sua resposta e que também é empregada por Claude COULOMBE e Gringo Suave .
filemagic
Nota : Este projeto foi atualizado pela última vez em 2013!
Por se basear no mesmo c-api, esta biblioteca tem alguma semelhança com o file-magic
incluído no libmagic
. Só é mencionado por mammadori e nenhuma outra resposta o emprega.