使用pathlib检索最新文件

4

我通常使用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)

有没有只使用pathlib的替代方案? (我知道你可以使用Path.glob(*.csv)来获取匹配的文件)

1个回答

7
您可以通过以下方式在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)

语法上的简化是将 [f for f in files] 替换为 list(files)。请参见 https://dev59.com/rW865IYBdhLWcg3wfemU#64512225 - wisbucky
2
max接受任何可迭代对象,所以你甚至不需要先将其转换为列表。max(files, key=...)同样适用。 - Petzku

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接