[Pythonmac-SIG] Discovering file type
Ramm, Henning
Henning.Ramm at mediapro-gmbh.de
Thu Feb 10 15:54:56 CET 2005
>I thought i could use my beloved old TYPE and CREATOR, then I realized
>that in MacOS X not every file has got them.
>So i can check both the extension and the HFSFileType.
>
>Still i need a consistent way to express the file type. I need
>something that given an HFSFileType returns the 'most used' extension,
>or something that from an extension determines a file type.
>Is there anything like that?
Don't think so, I looked for something similar myself and ended adding Type and Creator to every file that I recognize.
Because I couldn't find a free extensive list of Type and Creator codes, I collected my own. Perhaps they are of use for anyone:
# this type should get that extension
type_ext_map = { \
'..CT' : 'ct', \
'8BIM' : 'psd', '8BPS' : 'psd', \
'AB65' : 'p65', \
'AGD3' : 'fh8', 'AGD4' : 'fh9', 'AGD5' : 'fh10', 'AGD6' : 'fhmx', \
'ALB3' : 'pm3', 'ALB4' : 'pm4', 'ALB5' : 'pm5', 'ALB6' : 'pm6', \
'APPL' : 'app', \
'aust' : 'sea', \
'BMP' : 'bmp', '.BMP' : 'bmp', 'BMP_' : 'bmp', 'BMPf' : 'bmp', \
'CDIC' : 'dic', \
'CDR6' : 'cdr', 'CDRW' : 'cdr', \
'CDT' : 'cdt', '.CDT' : 'cdt', 'CDT_' : 'cdt', 'CDT6' : 'cdt', \
'DWG' : 'dwg', \
'DXF' : 'dxf', '.DXF' : 'dxf', 'DXF_' : 'dxf', \
'EPSF' : 'eps', 'EPSP' : 'eps', \
'FH10' : 'fh10', 'FH40' : 'fh4', 'FH50' : 'fh5', 'FH60' : 'fh6', 'FH70' : 'fh7', \
'FH80' : 'fh8', 'FH90' : 'fh9', 'FHD3' : 'fh3', \
'GIF' : 'gif', '.GIF' : 'gif', 'GIF_' : 'gif', 'GIFf' : 'gif', \
'GZIP' : 'gz', \
'ICO' : 'ico', \
'inDd' : 'indd', \
'JPEG' : 'jpg', \
'MooV' : 'mov', \
'MSWD' : 'doc', \
'PCX' : 'pcx', \
'PDF' : 'pdf', 'PDF ' : 'pdf', 'PDF_' : 'pdf', '.PDF' : 'pdf', \
'PICT' : 'pict', \
'PM3F' : 'pm3', 'PM4F' : 'pm4', 'PM5F' : 'pm5', \
'PNG' : 'png', \
'PPT3' : 'ppt', 'PPTV' : 'ppt', \
'PUBF' : 'pm2', \
'QTIF' : 'tif', \
'RTF' : 'rtf', 'RTF ' : 'rtf', 'RTF_' : 'rtf', \
'SLD8' : 'ppt', \
'SWFL' : 'swf', \
'SIT5' : 'sit', \
'TGA' : 'tga', \
'TIF' : 'tif', 'TIFF' : 'tif', \
'TPIC' : 'tga', \
'ttro' : 'txt', \
'W6BN' : 'doc', 'W8BN' : 'doc', 'WDBN' : 'doc', \
'WMF' : 'wmf', 'WMF ' : 'wmf', 'WMF_' : 'wmf', \
'WP4' : 'wpd', 'WP5' : 'wpd', 'WP6' : 'wpd', 'WPD0' : 'wpd', \
'WPRD' : 'prd', \
'XDOC' : 'qxd', \
'XLS8' : 'xls', \
'ZIP' : 'zip', 'ZIP ' : 'zip', 'ZIP_' : 'zip' \
}
# this extension should have that type
ext_type_map = { \
'anz' : 'TEXT', \
'app' : 'APPL', \
'bmp' : 'BMPf', \
'cdr' : 'CDRW', \
'css' : 'TEXT', \
'dmg' : 'devi', \
'doc' : 'WDBN', \
'eps' : 'EPSF', \
'fhmx' : 'AGD6', 'fh10' : 'AGD5', 'fh9' : 'AGD4', \
'fh8' : 'AGD3', 'fh7' : 'AGD2', \
'gif' : 'GIFf', \
'gz' : 'GZIP', \
'htm' : 'TEXT', 'html' : 'TEXT', \
'idd' : 'InDd', 'indd' : 'InDd', \
'jpg' : 'JPEG', 'jpeg' : 'JPEG', \
'p65' : 'AB65', \
'pdf' : 'PDF ', \
'ps' : 'EPSF', \
'psd' : '8BPS', \
'qxd' : 'XDOC', \
'rtf' : 'RTF ', \
'sit' : 'SIT5', 'sea' : 'SIT5', \
'tif' : 'TIFF', 'tiff' : 'TIFF', \
'tga' : 'TPIC', \
'txt' : 'TEXT' \
}
# this extension should use that creator
ext_creator_map = { \
'anz' : 'ttxt', \
'ai' : 'ART5', \
'bmp' : '8BIM', \
'css' : 'sfri', \
'dmg' : 'ddsk', \
'doc' : 'MSWD', \
'fhmx' : 'FH11', 'fh10' : 'FH11', 'fh9' : 'FH11', \
'fh8' : 'FH11', 'fh7' : 'FH11', 'fh6' : 'FH11', \
'fh5' : 'FH11', \
'gif' : '8BIM', \
'html' : 'sfri', 'htm' : 'sfri', \
'idd' : 'InDn', 'indd' : 'InDn', \
'inc' : 'sfri', \
'jpg' : '8BIM', \
'pdf' : 'CARO', \
'ppt' : 'PPT3', \
'qxb' : 'XPR3', 'qxd' : 'XPR3', 'qxl' : 'XPR3', 'qxt' : 'XPR3', \
'rtf' : 'MSWD', \
'sit' : 'SITx', 'sea' : 'SITx', 'sitx' : 'SITx', \
'tif' : '8BIM', \
'tga' : '8BIM', \
'xml' : 'MSIE', \
'xsl' : 'XCEL', \
'xtg' : 'XPR3', \
'zip' : 'SITx' \
}
# this type should use that creator
type_creator_map = { \
'^FSF' : 'CARO', \
'AGD2' : 'FH11', 'AGD3' : 'FH11', 'AGD4' : 'FH11', 'AGD5' : 'FH11', 'AGD6' : 'FH11', \
'FDF' : 'CARO', 'FDF ' : 'CARO', 'FDF_' : 'CARO', \
'GIFf' : '8BIM', \
'JPEG' : '8BIM', \
'PDF' : 'CARO', 'PDF ' : 'CARO', 'PDF_' : 'CARO', \
'PICT' : '8BIM', \
'TIFF' : '8BIM', \
'WDBN' : 'MSWD' \
}
# this creator should better be that
creator_creator_map = { \
'' : '????', \
#'AGD1' : 'AGD6', 'AGD2' : 'AGD6', 'AGD3' : 'AGD6', 'AGD4' : 'AGD6', 'AGD5' : 'AGD6', \
'ALD4' : 'AD65', 'ALD5' : 'AD65', 'ALD6' : 'AD65', \
'ARTY' : 'ART5', 'ART2' : 'ART5', 'ART3' : 'ART5', \
'ART4' : 'ART5', \
'BNHQ' : 'SITx', \
'FHA3' : 'FH11', 'FHA4' : 'FH11', 'FH04' : 'FH11', 'FH50' : 'FH11', 'FH60' : 'FH11', 'FH70' : 'FH11', 'FH80' : 'FH11', 'FH90' : 'FH11', \
'GKON' : '8BIM', \
'MOSS' : 'sfri', 'MOZZ' : 'sfri', 'MSIE' : 'sfri', \
'MSWK' : 'MSWD', \
'PACT' : 'SITx', \
'R*ch' : 'ttxt', \
'SIT!' : 'SITx' \
}
# this creator means that application
creator_name_map = { \
'' : 'Unknown', ' ' : 'Unknown', \
'????' : 'Unknown', \
'42ap' : 'GrandCentralPro', \
'8BIM' : 'Photoshop', \
'ACAD' : 'AutoCAD', \
'ALD4' : 'PageMaker 4', 'ALD5' : 'PageMaker 5', 'ALD6' : 'PageMaker 6.0', 'AD65' : 'PageMaker 6.5', \
'ARTY' : 'Illustrator', 'ARTZ' : 'Illustrator', 'ART2' : 'Illustrator', 'ART3' : 'Illustrator', 'ART4' : 'Illustrator', 'ART5' : 'Illustrator', \
'BNHQ' : 'BinHex', \
'BOBO' : 'AppleWorks', \
'CARO' : 'Acrobat', \
'CDRW' : 'CorelDraw', \
'drag' : 'MacOS X', \
'EDIT' : 'TextEdit', \
'ETF0' : 'etf-Jobticket', \
'F#+A' : 'RagTime', \
'FH70' : 'Freehand 7', 'FH80' : 'Freehand 8', 'FH90' : 'Freehand 9', 'FH10' : 'Freehand 10', 'FH11' : 'Freehand MX', \
'GKON' : 'GraphicConverter', \
'hscd' : 'Unknown (CD)', \
'InDn' : 'InDesign', \
'JVWR' : 'Preview', \
'LMAN' : 'Unknown (Windows)', \
'MOSS' : 'Netscape Navigator', \
'MOZZ' : 'Mozilla', \
'MPS ' : 'Cicero', \
'MSIE' : 'Internet Explorer', \
'MSWD' : 'MS Word', \
'MSWK' : 'MS Works', \
'PACT' : 'Compactor', \
'PPT3' : 'PowerPoint', \
'prvw' : 'Preview', \
'R*ch' : 'BBEdit', \
'RSED' : 'ResEdit', \
'SIT!' : 'StuffIt Classic', \
'SITx' : 'StuffIt (Expander)', \
'sfri' : 'Safari', \
'ttxt' : 'SimpleText', \
'UNIX' : 'Unknown (UNIX)', \
'vgrd' : 'Corel Draw SE', \
'XCEL' : 'Excel', \
'XPR3' : 'QuarkXPress' \
}
# this type means that file type
type_name_map = { \
'' : 'unknown file', ' ' : 'unknown file', \
'????' : 'unknown file', \
'42dl' : 'running Download', \
'AGD3' : 'Freehand 8 Document', 'AGD4' : 'Freehand 9 Document', \
'clpt' : 'Text-Clip', \
'APPL' : 'Program', \
'BINA' : 'Binary', \
'EPSF' : 'EPS', \
'EPSP' : 'EPS', \
'etff' : 'Jobticket', \
'FFIL' : 'Font Suitcase', \
'InDd' : 'InDesign Document', \
'LWFN' : 'PostScript Font', \
'PDF ' : 'PDF', \
'SIT5' : 'StuffIt Archive', 'SITD' : 'StuffIt Archive', \
'TEXT' : 'Text File', \
'WDBN' : 'Word Document', \
'XDOC' : 'XPress Document' \
}
Best regards,
Henning Hraban Ramm
Südkurier Medienhaus / MediaPro
Support/Admin/Development Dept.
More information about the Pythonmac-SIG
mailing list