Gegeben eine Liste von FileInfo-Objekten, wie sortiere ich sie nach Datum? Speziell möchte ich sie nach CreationTime in absteigender Reihenfolge sortieren.Wie sortiere ich die Liste der FileInfo in IronPython
1
A
Antwort
2
Der Pythonic Weg, dies wäre zu tun:
fileInfos = list(DirectoryInfo(path).GetFiles())
fileInfos.sort(key=lambda f: f.CreationTime, reverse=True)
Die Liste Sortiermethode nimmt eine Schlüsselfunktion, die verwendet wird für jedes Element den Sortierschlüssel zu bekommen.
1
DirectoryInfo.GetFiles() gibt ein Array von FileInfo-Objekten zurück. Ich habe eine generische Liste erstellt, in der die FileInfo-Objekte gespeichert und mit einem benutzerdefinierten Vergleicher sortiert wurden.
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)