Python按日期排序 - 特定文件名

时间:2017-02-01 04:58:01

标签: python sorting

我在文本文件中列出了文件名,如下所示:

 20160703_042628_b.dat
 20160705_034207_b.dat
 20160706_035020_b.dat
 20160707_032630_b.dat
 20160708_042912_b.dat
 20160709_033232_b.dat
 20160710_034220_b.dat

我如何按日期对它们进行排序,只提取最新的一个?

2 个答案:

答案 0 :(得分:1)

这将提取扩展名为.dat的所有文件的名称,并按名称对它们进行排序,并返回第一个值(最近的日期)。

import os
dat_files = filter(lambda x: x.endswith('.dat'), os.listdir('mydir'))
dat_files.sort()
dat_files[0]

如果您在文本文件中收到文件名,则以下代码可以使用。

f = open('dates.txt', 'r')
x = f.readlines()
x.sort()
x[0]

答案 1 :(得分:1)

import os
files = []
for file in os.listdir("/path/to/files/"):
  if file.endswith(".dat"):
    files.append(file)
sorted(files, reverse=True)[0]

您需要反转排序以弹出最新文件。

如果您无法访问系统,并且只有文件列表打印在文件中,请将条目读取并拆分为列表:

with open('list_of_files.txt','r') as f:
    file = f.read().splitlines()
sorted(file, reverse=True)[0]