FileInfo オブジェクトのリストが与えられた場合、それらを日付順に並べ替えるにはどうすればよいですか? 具体的には、CreationTime で降順に並べ替えたいと思います。
1334 次
2 に答える
2
これを行う Pythonic の方法は次のようになります。
fileInfos = list(DirectoryInfo(path).GetFiles())
fileInfos.sort(key=lambda f: f.CreationTime, reverse=True)
リストの並べ替えメソッドは、各項目の並べ替えキーを取得するために使用されるキー関数を取ります。
于 2009-03-04T23:37:52.683 に答える
1
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)
于 2009-03-04T19:23:31.063 に答える