[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