Python获取目录中具有特定扩展名的最新文件

Python获取目录中具有特定扩展名的最新文件,python,file,file-io,Python,File,File Io,我正在尝试使用“upload”目录中的最新文件,扩展名为.log,将由Python处理。我使用Ubuntuweb服务器,文件上传是通过html脚本完成的。上传的文件由Python脚本处理,结果写入MySQL数据库。我用答案作为我的代码 import glob newest = max(glob.iglob('upload/*.log'), key=os.path.getctime) print newest f = open(newest,'r') 但这并不是获取目录中最新的文件,而是获取最旧

我正在尝试使用“upload”目录中的最新文件,扩展名为.log,将由Python处理。我使用
Ubuntu
web服务器,文件上传是通过html脚本完成的。上传的文件由Python脚本处理,结果写入
MySQL
数据库。我用答案作为我的代码

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

但这并不是获取目录中最新的文件,而是获取最旧的文件。为什么?

问题是
max
的逻辑倒数是
min

newest = max(glob.iglob('upload/*.log'), key=os.path.getctime)
出于您的目的,您应该:

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

尝试
min
而不是
max
-逻辑相反?当我从python交互控制台运行它时,这会为我提供最新的文件。考虑一下,您可能需要
os.path.getmtime
-尽管创建时间和修改时间不同。。。所以,呃。。。不sure@JonClements:Wow.:)问题出在min,max上。将它改为min,它就起作用了。非常感谢。@Jon Clements:你能把这作为一个答案吗?这样我就可以接受了。想要识别最新文件的新手需要小心,因为max getctime应该是最新的日期,因此是最新的。我发现max在AMD64和raspberry pi上提供了linux上的最新文件。不知道这里发生了什么事。@Paul确实。。。我记得当我回答这个问题时,我认为OPs方法是正确的,建议
min
over
max
实际上是一个建议,看看他们是否想要最老的(或者只是想看看他们真正想要的是不是相反的)…@JonClements嗨,我正在做类似的事情,抓取一种特定的文件格式,其中必须是最新的,并且在目录中。我想知道是否有什么方法可以只使用
os
模块而不使用
glob
?@Yan我想你可以考虑使用
os.listdir()
,但是你必须自己进行模式匹配。似乎每个结果对于特定的操作系统都是好的。提醒人们这一点可能是个好主意。你的回答让我花了很多时间来找出我做错了什么,只是为了意识到第一个选择对我来说确实有效。