بعد انهاء فصل ال FFI من RWH وقراية libghc-magic افتكرت ان بايثون كمان ليها FFL وهى ctypes فليه لأ ؟ كتبت واحد كامل لبايثون بالإعتماد على ctypes –بالمناسبة بردو ctypes مستخدمه مع pyinotify-
على كل حال pymagic بتشمل كل الثوابت الموجودة فى magic.h وبتكشف الدوال الآتيه
magic_t magic_open(int);
void magic_close(magic_t);
const char *magic_file(magic_t, const char *);
const char *magic_descriptor(magic_t, int);
const char *magic_buffer(magic_t, const void *, size_t);
const char *magic_error(magic_t);
int magic_setflags(magic_t, int);
int magic_load(magic_t, const char *);
int magic_compile(magic_t, const char *);
int magic_check(magic_t, const char *);
int magic_errno(magic_t);
مثال مباشر على الإستخدام للحج ستورم
http://www.linuxac.org/forum/showpost.php?p=135139&postcount=11
xmonader@xmonader-desktop:~$ pymagic.py twitter.xml
twitter.xml: XML
xmonader@xmonader-desktop:~$ pymagic.py VirtualTerminal.pyc
VirtualTerminal.pyc: python 2.5 byte-compiled
xmonader@xmonader-desktop:~$ pymagic.py Allison-Iraheta-2009-03-10.mp3
Allison-Iraheta-2009-03-10.mp3: Audio file with ID3 version 2.3, MP3 encoding
يستحسن تستخدم guess
>>> F=”/home/xmonader/Allison-Iraheta-2009-03-10.mp3″
>>> guess(F)
‘Audio file with ID3 version 2.3, MP3 encoding’
https://sourceforge.net/projects/pymagic/
تحديث:
تم انهاء SharpMagic وهى اعتقد الوحيدة ل Libmagic
https://sourceforge.net/projects/sharpmagic/