Форум сайта python.su
Здравствуйте,
подскажите следующее:
1.Есть каталог с произвольным количеством файлов.
2.Как получить имя файла, дата которого является самой последней - т.е. файл “самый новый” в этом каталоге.
Спасибо!
Офлайн
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("все сделано")
Офлайн
Офлайн
у меня почему-то не срабатывает
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("все сделано")
Офлайн
Ну а что говорит то?
Офлайн
инвалиб синтакс,
ссылается на на print max_time_result, file_time_dict
Офлайн
А какая у тебя версия питона?
Если меньше 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])
Офлайн
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
Офлайн
aximoPython 3?
инвалиб синтакс,
ссылается на на print max_time_result, file_time_dict
print(max_time_result, file_time_dict)
Офлайн