How to find the mime type of a file in python? How to find the mime type of a file in python? python python

How to find the mime type of a file in python?


The python-magic method suggested by toivotuo is outdated. Python-magic's current trunk is at Github and based on the readme there, finding the MIME-type, is done like this.

# For MIME typesimport magicmime = magic.Magic(mime=True)mime.from_file("testdata/test.pdf") # 'application/pdf'


The mimetypes module in the standard library will determine/guess the MIME type from a file extension.

If users are uploading files the HTTP post will contain the MIME type of the file alongside the data. For example, Django makes this data available as an attribute of the UploadedFile object.


More reliable way than to use the mimetypes library would be to use the python-magic package.

import magicm = magic.open(magic.MAGIC_MIME)m.load()m.file("/tmp/document.pdf")

This would be equivalent to using file(1).

On Django one could also make sure that the MIME type matches that of UploadedFile.content_type.