Use Python os.walk para identificar una lista de archivos

Posible duplicado:
En Python, la forma más rápida de crear una lista de archivos en un directorio con una cierta extensión

Actualmente estoy usando os.walk para explorar recursivamente a través de un directorio que identifica archivos .MOV

def fileList(): matches = [] for root, dirnames, filenames in os.walk(source): for filename in fnmatch.filter(filenames, '*.mov'): matches.append(os.path.join(root, filename)) return matches 

¿Cómo puedo extender esto para identificar múltiples archivos, por ejemplo, .mov, .MOV, .avi, .mpg?

Gracias.

Intenta algo como esto:

 def fileList(): matches = [] for root, dirnames, filenames in os.walk(source): for filename in filenames: if filename.endswith(('.mov', '.MOV', '.avi', '.mpg')): matches.append(os.path.join(root, filename)) return matches 

Una alternativa utilizando os.path.splitext :

 for root, dirnames, filenames in os.walk(source): filenames = [ f for f in filenames if os.path.splitext(f)[1] in ('.mov', '.MOV', '.avi', '.mpg') ] for filename in filenames: matches.append(os.path.join(root, filename)) return matches 
 pattern = re.compile('.*\.(mov|MOV|avi|mpg)$') def fileList(source): matches = [] for root, dirnames, filenames in os.walk(source): for filename in filter(lambda name:pattern.match(name),filenames): matches.append(os.path.join(root, filename)) return matches