欢迎访问宙启技术站
智能推送

在Python中获取文件的MIME类型

发布时间:2024-01-07 03:58:00

在Python中获取文件的MIME类型可以通过两种方式实现:一种是使用第三方库mimetypes,另一种是使用标准库mimetypes。

使用mimetypes库:

import mimetypes

# 获取文件的MIME类型
mime_type = mimetypes.guess_type('test.txt')[0]
print(mime_type)

输出结果:

text/plain

使用标准库mimetypes:

import pathlib

# 获取文件的MIME类型
file_path = pathlib.Path('test.txt')
mime_type = file_path.resolve().suffix
print(mime_type)

输出结果:

.txt

使用第三方库mimetypes可以获取更准确的MIME类型,而使用标准库mimetypes则可以快速地获取文件的扩展名。

下面是一个完整的使用例子,它结合了两种方式:

import mimetypes
import pathlib

def get_mime_type(file_name):
    # 使用mimetypes库获取MIME类型
    mime_type = mimetypes.guess_type(file_name)[0]
    if mime_type:
        return mime_type

    # 使用标准库mimetypes获取扩展名
    file_path = pathlib.Path(file_name)
    file_ext = file_path.resolve().suffix.lower()
    if file_ext in mimetypes.types_map:
        return mimetypes.types_map[file_ext]

    # 若无法获取MIME类型,则返回未知类型
    return 'application/octet-stream'

file_name = 'test.png'
mime_type = get_mime_type(file_name)
print(mime_type)

输出结果:

image/png

在这个例子中,先尝试使用mimetypes库根据文件名获取MIME类型,若无法获取,则使用标准库mimetypes获取文件的扩展名,再通过扩展名来获取MIME类型。若仍然无法获取MIME类型,则返回默认的未知类型"application/octet-stream"。这样就可以较为全面地获取文件的MIME类型了。