Как получить время последнего измененного файла в папке с помощью Python

Я разрабатываю код в ODI. Мне нужно получить дату/время последнего измененного файла в каталоге и проверить, превышает ли дата/время последнего измененного файла более 5 минут; затем скопируйте все файлы из этой папки в другую папку. Если оно меньше 5 минут, подождите 2 минуты и повторите проверку еще раз.

Мне удалось получить дату/время последнего измененного файла в каталоге через файл .bat. Я сохраняю вывод в файле .txt, а затем загружаю этот файл во временный интерфейс, чтобы проверить, превышает ли время 5 минут.

Я хочу выполнить свое требование с помощью скрипта Python, потому что надеюсь, что это будет сделано за один шаг процедуры ODI.

Пожалуйста помоги.

заранее спасибо


person sar12089    schedule 23.06.2017    source источник
comment
что ты пробовал?   -  person Netwave    schedule 23.06.2017
comment
Я предпочитаю os.stat(filename).st_mtime   -  person cs95    schedule 23.06.2017


Ответы (1)


Чтобы удалить последний измененный файл в папке, если он старше 5 минут без рекурсии:

import os
import time

folder = 'pathname'

files = [(f, os.path.getmtime(f)) for f in os.listdir(folder) 
                if os.path.isfile(f)]

files = sorted(files, key=lambda x: x[1], reverse=True)

last_modified_file = None if len(files) == 0 else files[0][0]

# get age file in minutes from now
def age(filename):
    return (time.time() - os.path.getmtime(filename))//60

if last_modified_file is not None:
    if age(last_modified_file) >= 5:
        os.remove(last_modified_file)
person glegoux    schedule 23.06.2017
comment
Привет.. Спасибо за это... Некоторые изменения в требованиях.. если дата/время последнего измененного файла больше 5 минут, скопируйте все файлы в этой папке в другую папку.. если это меньше 5 минут , подождите 2 минуты и перепроверьте еще раз.. - person sar12089; 24.06.2017