dav*_*dev 7 python iterator mime-types
我试图使用mimetypes模块基于MIME类型的第一部分获取文件扩展名列表.例如.'image'是'image/jpeg','image/png'等的第一部分.
这是我的代码:
import mimetypes
def get_extensions_for_type(general_type):
for ext in mimetypes.types_map:
if mimetypes.types_map[ext].split('/')[0] == general_type:
yield ext
VIDEO = tuple(get_extensions_for_type('video'))
AUDIO = tuple(get_extensions_for_type('audio'))
IMAGE = tuple(get_extensions_for_type('image'))
print("VIDEO = " + str(VIDEO))
print('')
print("AUDIO = " + str(AUDIO))
print('')
print("IMAGE = " + str(IMAGE))
Run Code Online (Sandbox Code Playgroud)
这是输出:
VIDEO = ('.m1v', '.mpeg', '.mov', '.qt', '.mpa', '.mpg', '.mpe', '.avi', '.movie', '.mp4')
AUDIO = ('.ra', '.aif', '.aiff', '.aifc', '.wav', '.au', '.snd', '.mp3', '.mp2')
IMAGE = ('.ras', '.xwd', '.bmp', '.jpe', '.jpg', '.jpeg', '.xpm', '.ief', '.pbm', '.tif', '.gif', '.ppm', '.xbm', '.tiff', '.rgb', '.pgm', '.png', '.pnm')
Run Code Online (Sandbox Code Playgroud)
这缺少很多格式,例如.'.flac'代表音频.mimetypes.types_map['.flac'].split('/')[0]返回'audio',为什么输出中不包含这个?
我找到了解决方案:
用:
mimetypes.init()
Run Code Online (Sandbox Code Playgroud)
导入模块后。
这会从操作系统中读取其他 MIME 类型。(见python文档)
| 归档时间: |
|
| 查看次数: |
2124 次 |
| 最近记录: |