Python si lega a libmagic
Tutte le diverse risposte su questo argomento sono molto confuse, quindi spero di dare un po 'più di chiarezza con questa panoramica delle diverse associazioni di libmagic. Precedentemente mammadori ha dato una breve risposta elencando l'opzione disponibile.
libmagic
Quando si determina un tipo mime di file, lo strumento preferito viene semplicemente chiamato file
e viene chiamato il suo back-end libmagic
. (Vedi la home page del Progetto .) Il progetto è sviluppato in un repository cvs privato, ma c'è un mirror git di sola lettura su github .
Ora questo strumento, che ti servirà se vuoi usare una qualsiasi delle associazioni libmagiche con Python, viene già fornito con le sue stesse associazioni Python chiamate file-magic
. Non c'è molto di documentazione dedicato per loro, ma si può sempre avere uno sguardo alla pagina man del c-library: man libmagic
. L'utilizzo di base è descritto nel file Leggimi :
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)
Oltre a questo, puoi anche usare la libreria creando un Magic
oggetto usando magic.open(flags)
come mostrato nel file di esempio .
Sia toivotuo e l'uso ewr2san questi file-magic
attacchi inclusi nel file
strumento. Presumono erroneamente che stanno usando il python-magic
pacchetto. Questo sembra indicare che se entrambi file
e python-magic
sono installati, il modulo python si magic
riferisce a quello precedente.
python-magic
Questa è la biblioteca di cui Simon Zimmermann parla nella sua risposta e che è anche impiegato da Claude COULOMBE e da Gringo Suave .
filemagic
Nota : questo progetto è stato aggiornato l'ultima volta nel 2013!
Essendo basato sullo stesso c-api, questa libreria ha alcune somiglianze con file-magic
incluso in libmagic
. Viene menzionato solo da mammadori e nessun'altra risposta lo utilizza.