Binding Python untuk libmagic
Semua jawaban yang berbeda pada topik ini sangat membingungkan, jadi saya berharap untuk memberikan sedikit lebih banyak kejelasan dengan ikhtisar ini tentang berbagai ikatan libmagic. Sebelumnya mammadori memberi jawaban singkat mencantumkan opsi yang tersedia.
libmagic
Saat menentukan jenis file mime, alat pilihan dipanggil file
dan back-endnya disebut libmagic
. (Lihat halaman depan Proyek .) Proyek ini dikembangkan di repositori cvs pribadi, tetapi ada mirror git read-only di github .
Sekarang alat ini, yang akan Anda perlukan jika Anda ingin menggunakan binding libmagic dengan python, sudah dilengkapi dengan binding python sendiri yang disebut file-magic
. Tidak ada banyak dokumentasi yang didedikasikan untuk mereka, tetapi Anda selalu dapat kita lihat pada halaman manual dari c-library: man libmagic
. Penggunaan dasar dijelaskan dalam file 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)
Selain itu, Anda juga dapat menggunakan perpustakaan dengan membuat Magic
objek menggunakan magic.open(flags)
seperti yang ditunjukkan pada file contoh .
Baik toivotuo dan ewr2san menggunakan file-magic
binding ini termasuk dalam file
alat. Mereka keliru menganggap, mereka menggunakan python-magic
paket itu. Ini tampaknya menunjukkan, bahwa jika keduanya file
dan python-magic
diinstal, modul python magic
merujuk ke yang sebelumnya.
python-magic
Ini adalah perpustakaan yang dibicarakan Simon Zimmermann dalam jawabannya dan yang juga digunakan oleh Claude COULOMBE serta Gringo Suave .
filemagis
Catatan : Proyek ini terakhir diperbarui pada 2013!
Karena didasarkan pada c-api yang sama, perpustakaan ini memiliki beberapa kesamaan dengan yang file-magic
termasuk dalam libmagic
. Itu hanya disebutkan oleh mammadori dan tidak ada jawaban lain yang mempekerjakannya.