4

Why do some files not have mimetypes?

guess_type returns a tuple with information about the file type like 'image/jpeg', 'application/xml', 'text/plain' , ....

Why do other files return no information 'None' even though the file exits and is not empty?

>> import mimetypes
>> mimetypes.guess_type('myfile.xx')
jtlz2
  • 4,913
  • 6
  • 43
  • 84
Lou.rn
  • 55
  • 1
  • 4

1 Answers1

4

(Answered here: How to find the mime type of a file in python?)


The how

Do this:

>>> pip install python-magic
>>> import magic
>>> mime = magic.Magic(mime=True)
>>> mime.from_file("testdata/test.pdf")

The why

The "mimetypes" library isn't very good, (it's unreliable). The "none" is that the specified file isn't recognized as a known filetype, (an extension don't a fileype make).


Hope this solves your issue and answers your question

  • 1
    For me, I first got "raise ImportError('failed to find libmagic. Check your installation')" So, it should be noted that you have to first install "libmagic". I'm on a Mac, so `sudo port install libmagic` took care of that. However, this solution still incorrectly gave me back "application/octet-stream", when exiftool gave me "MIME Type : video/x-dv", which is correct. As noted, "mimetypes" also unreliably gave me back "None". – LOlliffe Nov 06 '19 at 23:17