[Python-es] ordenar por extension

Arnau Sanchez pyarnau en gmail.com
Sab Ene 8 13:03:57 CET 2011


On Fri, 7 Jan 2011 21:06:30 -0500 Juanpe :P wrote:

> he programado un script que me muestra la carepeta y blos archivos que
> contiene filtrados por solo los que quiero mostrar. y lo hace pero mezclado
> por extensiones, necesito que los muestre ordenados por la extension

Abstrayéndonos de los detalles de os.walk, podríamos escribir:

def by_extension(path):
    path0, extension = os.path.splitext(path)
    return extension, path0

filenames = ["b2.c", "a.cpp", "b.c", "b.h", "c.cpp"]
filtered_filenames = (f for f in filenames if f.lower().endswith((".c", ".cpp", ".h")))        
sorted_filenames = sorted(filtered_filenames, key=by_extension)
    
print(sorted_filenames)
# ['b.c', 'b2.c', 'a.cpp', 'c.cpp', 'b.h']

http://wiki.python.org/moin/HowTo/Sorting/#KeyFunctions


Más información sobre la lista de distribución Python-es