python第二个最新文件

时间:2016-02-12 14:05:14

标签: python directory

我需要第二个最新的文件。

在这个帖子中找到最新的:

Python get most recent file in a directory with certain extension

使用此构造:

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

但是,我怎样才能得到min或max而不是第二个元素?

2 个答案:

答案 0 :(得分:3)

我认为这可能是一个合适的解决方案:

# for the min + 1
sorted(glob.iglob('*.log'), key=os.path.getctime)[1]

# for the newest
sorted(glob.iglob('*.log'), key=os.path.getctime)[-1]

# for the second newest ( max - 1)
sorted(glob.iglob('*.log'), key=os.path.getctime)[-2]

所以基本上glob.iglob('*.log')只是一个数组(更准确地说它是一个生成器) - 你可以通过ctime对它进行排序并找到你想要的东西。

答案 1 :(得分:2)

sorted_list = sorted(glob.iglob('upload/*.log'), key=os.path.getctime)
sorted_list[-2]