如何在Python中找到文件的MIME类型?
假设您想在某处保存一堆文件,例如在BLOB中。 假设您想通过网页提取这些文件,并让客户端自动打开正确的应用程序/查看器。
假设:浏览器找出HTTP响应中mime-type(content-type?)标题使用哪个应用程序/查看器。
基于这种假设,除了文件的字节外,还需要保存MIME类型。
你会如何找到文件的MIME类型? 我目前在Mac上,但这也应该在Windows上工作。
浏览器在将文件发布到网页时是否添加此信息?
有没有一个整洁的python库来查找这些信息? 一个WebService或(甚至更好)一个可下载的数据库?
toivotuo建议的python-magic方法已经过时了。 Python-magic的当前主干位于Github,并且基于那里的自述文件,找到MIME类型,就是这样完成的。
# For MIME types
>>> import magic
>>> mime = magic.Magic(mime=True)
>>> mime.from_file("testdata/test.pdf")
'application/pdf'
>>>
标准库中的mimetypes模块将从文件扩展名中确定/猜测MIME类型。
如果用户正在上传文件,则HTTP帖子将包含文件的MIME类型以及数据。 例如,Django将这些数据作为UploadedFile对象的一个属性提供。
比使用mimetypes库更可靠的方法是使用python-magic包。
import magic
m = magic.open(magic.MAGIC_MIME)
m.load()
m.file("/tmp/document.pdf")
这将等同于使用文件(1)。
在Django上,还可以确保MIME类型与UploadedFile.content_type相匹配。
链接地址: http://www.djcxy.com/p/1267.html