2017-02-01 8 views
0

У меня есть имена файлов, перечисленных в текстовом файле, который выглядит как:Python сортировать по дате - конкретные имена файлов

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 

Как я могу отсортировать их по дате и просто извлечь самый новый?

+0

вы имеете в виду по именам, которые имеют дату ? Получить имена и отсортировать их - 'sort()' или 'sorted()' - вы должны получить правильный результат. – furas

ответ

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] 
+0

У меня нет доступа к этим файлам - получение их через другой текстовый файл. – Joe

+0

Я предоставил код для ввода текстового файла. Ура !! –

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] 
+0

Спасибо, но у меня нет доступа к системе. Только получение этого списка из другого файла. – Joe

+0

@Joe, я добавил к ответу, как читать из файла. – gregory

Смежные вопросы