MIME-Type einer Datei bestimmen

23/10/2007 - 23:09 von Alexander Skwar | Report spam
Hallo!

Wie kann ich in Python 2.4 den MIME-Type einer Datei bestimmen?
Das Modul mimetypes hilft mir hierbei nicht weiter, da die Eingabedateien
keine Endung haben.

Am besten fànde ich eine Lösung, die wie "file" auf Linux an Hand
irgendwelcher Magics den MIME Type bestimmen kann. Beispiel:

$ python
Python 2.4.4 (#1, Sep 30 2007, 11:21:38)
[GCC 4.1.2 (Gentoo 4.1.2 p1.0.1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.



import mimetypes
f="/dev/shm/5302"
mimetypes.guess_type(f)






(None, None)










$ file -i /dev/shm/5302
/dev/shm/5302: image/jpeg

Wie man hier sieht, hat es Python's mimetypes nicht geschafft,
mir image/jpeg zurück zu geben. Ich würde allerdings ungerne
auf das externe Programm "file" zurückgreifen.

Wie geht's?

Danke,

Alexander Skwar
He had occasional flashes of silence that made his conversation perfectly
delightful.
 

Lesen sie die antworten

#1 Marc BlackJack Rintsch
23/10/2007 - 23:32 | Warnen spam
On Tue, 23 Oct 2007 23:09:11 +0200, Alexander Skwar wrote:

Wie man hier sieht, hat es Python's mimetypes nicht geschafft,
mir image/jpeg zurück zu geben. Ich würde allerdings ungerne
auf das externe Programm "file" zurückgreifen.

Wie geht's?



Es gibt eine Anbindung an die `libmagic` die auch von `file` benutzt wird:

In [652]: import magic

In [653]: cookie = magic.open(magic.MAGIC_NONE)

In [654]: cookie.load()
Out[654]: 0

In [655]: print cookie.file('test.py')
python script text executable

In [656]: print cookie.file('test.png')
PNG image data, 744 x 1052, 8-bit/color RGBA, non-interlaced

Ciao,
Marc 'BlackJack' Rintsch

Ähnliche fragen