Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 11, 2012 05:01:27

aximo
Зарегистрирован: 2012-09-11
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

получение файла с максимальной датой?

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

Спасибо!

Офлайн

#2 Сен. 11, 2012 05:36:48

aximo
Зарегистрирован: 2012-09-11
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

получение файла с максимальной датой?

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("все сделано")

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

Офлайн

#3 Сен. 11, 2012 07:25:23

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

получение файла с максимальной датой?

Офлайн

#4 Сен. 11, 2012 08:42:15

aximo
Зарегистрирован: 2012-09-11
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

получение файла с максимальной датой?

у меня почему-то не срабатывает

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("все сделано")

Офлайн

#5 Сен. 11, 2012 08:47:28

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

получение файла с максимальной датой?

Ну а что говорит то?



Офлайн

#6 Сен. 11, 2012 08:51:44

aximo
Зарегистрирован: 2012-09-11
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

получение файла с максимальной датой?

инвалиб синтакс,
ссылается на на print max_time_result, file_time_dict

Офлайн

#7 Сен. 11, 2012 09:02:52

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

получение файла с максимальной датой?

А какая у тебя версия питона?

Если меньше 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])



Офлайн

#8 Сен. 11, 2012 09:18:48

Mozart
От:
Зарегистрирован: 2011-12-12
Сообщения: 66
Репутация: +  0  -
Профиль   Отправить e-mail  

получение файла с максимальной датой?

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



Офлайн

#9 Сен. 11, 2012 17:12:31

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

получение файла с максимальной датой?

aximo
инвалиб синтакс,
ссылается на на print max_time_result, file_time_dict
Python 3?
print(max_time_result, file_time_dict)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version