fGetMIME

Unter Windows erfährt man den Typ einer Datei, indem man auf deren letzte Endung (den Teil des Namens hinter dem letzten Punkt) schaut. Ist diese Endung beispielsweise "BMP", handelt es sich um ein Bild, ist sie "WAV", enthält die Datei vermutlich Audio-Daten. Dieser "Brauch" reicht weit zurück in die Vergangenheit und hat seine Wurzeln in der DOS-Zeit.

Unter Linux kann man den Dateityp beispielsweise mit dem Befehl "file" ermitteln. Dieser untersucht verschiedene Eigenschaften, unter anderem Signaturen, Header und Endungen.

Das Ergebnis kann man sich auch als MIME-Type darstellen lassen. Diese MIME-Types sind eine Übereinkunft, wie man den Datentyp am besten und eindeutig speichert, und kommen eigendlich aus der Geburtszeit der eMail-Kommunikation. "image/png" bedeutet zum Beispiel, dass es sich um ein Bild des Types "PNG" handelt.

Des Befehls "file" bedient sich der folgende Code-Schnipsel, der unter Linux den MIME-Type der übergebenen Datei als String zurückgibt.

def fGetMIME(pFile):
    import os
    return os.popen2('file -bi "' + pFile + '"')[1].readlines()[0][:-1]

Anmerkung: Es kann passieren, dass der Funktionsaufruf in einer IOError-Exception endet. Diese kann man aber (einigen Internet-Foren zufolge) getrost abfangen und im Sand verlaufen lassen.

Tags: Python