Python查找文件名中包含特定字符串的最新文件

时间:2014-03-25 09:20:10

标签: python filenames

在目录中我有很多文件。我想用" dog"搜索最新的文件。在名称中,所有扩展名。

path = 'my_path'
name = 'dog'
files = sorted([f for f in os.listdir(path) if f.????(name)])
recent = files[-1]
print "The most recent file with 'dog' in the name is :", recent

由于

1 个答案:

答案 0 :(得分:2)

这是你可以做到的一种方式:

files = sorted((f for f in os.listdir(path) if f.find(name) != -1), 
               key=lambda f: os.stat(os.path.join(path, f)).st_mtime)
recent = files[-1]

sorted接受一个可选参数key,它指定一个参数的函数,该参数返回将用于排序的键。上面的lambda表达式按mtime(最后修改时间)对数组进行排序。对于lambda,信用转到this answer

如果您不想使用lambda,您也可以使用普通函数:

def mtime(f): 
    return os.stat(os.path.join(path, f)).st_mtime

files = sorted((f for f in os.listdir(path) if f.find(name) != -1), key=mtime)