как отсортировать список FileInfo в IronPython - PullRequest
1 голос
/ 04 марта 2009

Учитывая список объектов FileInfo, как мне отсортировать их по дате? В частности, я хочу отсортировать их по CreationTime в порядке убывания.

Ответы [ 2 ]

2 голосов
/ 05 марта 2009

Pythonic способ сделать это будет:

fileInfos = list(DirectoryInfo(path).GetFiles())
fileInfos.sort(key=lambda f: f.CreationTime, reverse=True)

Метод сортировки списка использует функцию ключа, которая используется для получения ключа сортировки для каждого элемента.

1 голос
/ 04 марта 2009

DirectoryInfo.GetFiles () возвращает массив объектов FileInfo. Я создал общий список для хранения объектов FileInfo и отсортировал его с помощью пользовательского компаратора.

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)
...