質問

FileInfoオブジェクトのリストがある場合、それらを日付でソートするにはどうすればよいですか?具体的には、CreationTimeで降順に並べ替えます。

役に立ちましたか?

解決

これを行うPythonの方法は次のとおりです。

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

リストの並べ替えメソッドは、各アイテムの並べ替えキーを取得するために使用されるキー関数を取ります。

他のヒント

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)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top