cómo ordenar la lista de FileInfo en IronPython
-
03-07-2019 - |
Pregunta
Dada una lista de objetos FileInfo, ¿cómo los ordeno por fecha? Específicamente quiero ordenarlos por CreationTime en orden descendente.
Solución
La forma pitónica de hacer esto sería:
fileInfos = list(DirectoryInfo(path).GetFiles())
fileInfos.sort(key=lambda f: f.CreationTime, reverse=True)
El método de clasificación de lista toma una función clave que se usa para obtener la clave de clasificación para cada elemento.
Otros consejos
DirectoryInfo.GetFiles () devuelve una matriz de objetos FileInfo. Creé una lista genérica para contener los objs de FileInfo y la ordené usando un comparador personalizado.
logDir = r"C:\temp"
fileInfosArray = DirectoryInfo(logDir).GetFiles("*.log")
fileInfosList = List[FileInfo]()
fileInfosList.AddRange(fileInfosArray)
fileInfosList.Sort(FileInfoCompareCreationTimeDesc)
for fileInfo in fileInfosList:
print fileInfo.CreationTime, fileInfo.LastAccessTime, fileInfo.LastWriteTime, fileInfo.Name
# comparison delegate for FileInfo objects: sort by CreationTime Descending
def FileInfoCompareCreationTimeDesc(fileInfo1, fileInfo2):
return fileInfo2.CreationTime.CompareTo(fileInfo1.CreationTime)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow