首页 > 解决方案 > 如何根据文件名预测文件的 MIME 类型?

问题描述

该函数用于根据文件名预测文件的 MIME 类型。如果它无法预测 mime 类型,则默认为application/octet-stream,即任意二进制。我想知道是否有一种更 Pythonic/更简洁的方式来编写这个函数。

from mimetypes import guess_type

def guess_mime(fname):
    try:
        return tuple(guess_type(fname)[0].split('/'))
    except AttributeError:
        return 'application', 'octet-stream'

标签: pythonmime-typesmime

解决方案


使用Magic库:

import magic
mime = magic.Magic(mime=True)
mime.from_file("testdata/test.pdf") # 'application/pdf'

易于安装:

pip install python-magic

推荐阅读