Estoy tratando de obtener una lista de extensiones de archivos basadas en la primera parte de un tipo MIME utilizando el módulo mimetypes. p.ej. 'Imagen' es la primera parte de 'image/jpeg', 'image/png', etc.¿Cómo obtener una lista de extensiones de archivo para un tipo de archivo general?
Este es mi código:
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))
y este es el resultado:
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')
Esto le falta muchos formatos, ej. '.flac' para audio. mimetypes.types_map['.flac'].split('/')[0]
devuelve 'audio', entonces ¿por qué esto no está incluido en la salida?
¿Qué versión de Python? He intentado tanto 2.6 como 3.1 y mimetypes.types_map no contiene '.flac'. – knutin