Python获取目录中最近的指定扩展名文件
我想用“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)