Python获取目录中最近的指定扩展名文件

15 投票
2 回答
36020 浏览
提问于 2025-04-18 09:15

我想用“upload”文件夹里最新的后缀为“.log”的文件来进行Python处理。我使用的是Ubuntu的网络服务器,文件上传是通过一个HTML脚本完成的。上传的文件会被一个Python脚本处理,处理结果会写入MySQL数据库。我参考了这个答案来写我的代码。

import glob
newest = max(glob.iglob('upload/*.log'), key=os.path.getctime)
print newest
f = open(newest,'r')

但是我的代码没有找到文件夹里最新的文件,反而找到了最旧的一个。这是为什么呢?

2 个回答

1

在很多新程序中,大家更喜欢用pathlib来处理这个非常常见的任务:

from pathlib import Path

XLSX_DIR = Path('../../somedir/')
XLSX_PATTERN = r'someprefix*.xlsx'

latest_file = max(XLSX_DIR.glob(XLSX_PATTERN), key=lambda f: f.stat().st_ctime)
23

这个问题是,max的逻辑反义词是min

newest = max(glob.iglob('upload/*.log'), key=os.path.getctime)

对于你的需求应该是:

newest = min(glob.iglob('upload/*.log'), key=os.path.getctime)

撰写回答