2013-01-19 3 views
11

Ich möchte Mimetype einer XML-Datei bestimmen, aber ich bekomme Fehler über einige Instanz als erstes Argument. Ich bin neu zu Python bitte helfen. Unten ist der Code, den ich verwende, und der Fehler, den er wirft.Holen Sie den MIME-Typ einer Datei mit Python

from mimetypes import MimeTypes 
import urllib 
FILENAME = 'Upload.xml' 
url = urllib.pathname2url(FILENAME) 
type = MimeTypes.guess_type(url) 
print type 

**ERROR :** Traceback (most recent call last): 
File "/home/navi/Desktop/quicksort.py", line 20, in <module> 
type = MimeTypes.guess_type(url) 
TypeError: unbound method guess_type() must be called with MimeTypes instance as first argument (got str instance instead) 

Antwort

20

Der Fehler sagt, dass Sie die MimeTypes Klasse zu initialisieren haben:

>>> from mimetypes import MimeTypes 
>>> import urllib 
>>> 
>>> mime = MimeTypes() 
>>> url = urllib.pathname2url('Upload.xml') 
>>> mime_type = mime.guess_type(url) 
>>> 
>>> print mime_type 
('application/xml', None) 

Obwohl Sie diese und mimetypes.guess_type direkt verwenden überspringen könnte:

>>> import urllib, mimetypes 
>>> 
>>> url = urllib.pathname2url('Upload.xml') 
>>> print mimetypes.guess_type(url) 
('application/xml', None) 
+5

Ein direkterer Ansatz zu verwenden 'ist mimetypes.guess_type' direkt statt über eine 'MimeTypes'-Instanz. – bdash

+0

@bdash: Danke, das wusste ich nicht. – Blender

+0

@bdash ich versuchte die gleiche Sache in meinem Code nicht funktioniert, überprüfen Sie bitte den Code eingefügt Frage – Navi

Verwandte Themen