Найти - Пользователи
Полная версия: получение файла с максимальной датой?
Начало » Python для новичков » получение файла с максимальной датой?
1
aximo
Здравствуйте,
подскажите следующее:
1.Есть каталог с произвольным количеством файлов.
2.Как получить имя файла, дата которого является самой последней - т.е. файл “самый новый” в этом каталоге.

Спасибо!
aximo
import glob
import os
import datetime
import time
import shutil
fil = 'c:/MyTestDir/'
allsubfilez = glob.glob(fil+'/*.*') #смотрим 
for subfil in allsubfilez:
    ftunix = os.path.getmtime(subfil)
    ftunix=datetime.datetime.fromtimestamp(ftunix)
   
    print(subfil)
    print(ftunix)
print("все сделано")

Выбрал все файлы и определил время каждого из них. теперь нужно выбрать файл с максимальным временем создания.
FishHook
тут же ж
aximo
у меня почему-то не срабатывает

import glob
import os
import datetime
import time
import shutil
archpath = '//AllTxt/' # общий путь к архивам
allcatalogs = glob.glob(archpath+'*')
for catalogs in allcatalogs:
    if os.path.isdir(catalogs):
        subfiles = glob.glob(catalogs+'/*.txt')
        file_time_dict={file_name:os.path.getmtime(file_name) for file_name in subfiles}
        max_time_result= max(file_time_dict, key=lambda x: file_time_dict.values())
        print max_time_result, file_time_dict[max_time_result]
print("все сделано")
FishHook
Ну а что говорит то?
aximo
инвалиб синтакс,
ссылается на на print max_time_result, file_time_dict
FishHook
А какая у тебя версия питона?

Если меньше 2.7, то так тогда

Вместо
file_time_dict={file_name:os.path.getmtime(file_name) for file_name in subfiles}

Нужно

file_time_dict=dict([(file_name,os.path.getmtime(file_name)) for file_name in subfiles])
Mozart
import time, os, os.path as op

d = dict()
[d.setdefault(i, op.getctime(i)) for i in os.listdir('.'))]

max_time = max(d.values())
t = time.strftime("%d.%m.%Y %H:%M:%S", time.localtime(max_time))

for i in d.items():
if i[-1] == max_time:
print "The last file - %s, create time - %s" % (i[0], t)

# The last file - text.txt, create time - 09.09.2012 15:38:37
reclosedev
aximo
инвалиб синтакс,
ссылается на на print max_time_result, file_time_dict
Python 3?
print(max_time_result, file_time_dict)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB