在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类型了。
