使用pathlib检索最新文件

DEC*_*MAX 5 python glob pathlib

我主要使用 pathlib 而不是 os 作为路径,但是有一件事我未能在 pathlib 上工作。例如,如果我需要目录中最新创建的 .csv,我将使用 glob & os

import glob
import os

target_dir = glob.glob("/home/foo/bar/baz/*.csv")
latest_csv = max(target_dir, key=os.path.getctime)
Run Code Online (Sandbox Code Playgroud)

有没有仅使用 pathlib 的替代方案?(我知道您可以使用 生成匹配的文件Path.glob(*.csv)

小智 8

您可以通过执行以下操作在 pathlib 中实现它:

Path 对象有一个名为 stat() 的方法,您可以在其中检索创建和修改日期等内容。

from pathlib import Path

files = Path("./").glob("*.py")

latest_file = max([f for f in files], key=lambda item: item.stat().st_ctime)

print(latest_file)
Run Code Online (Sandbox Code Playgroud)

  • `max` 接受任何可迭代对象,因此您甚至不需要先将其转换为列表。`max(files, key=...)` 应该也同样有效。 (2认同)