2017-06-23 7 views
0

Je développe du code dans ODI. Mon besoin est d'obtenir la date et l'heure du dernier fichier modifié dans un répertoire et de vérifier si la date/heure du dernier fichier modifié est supérieure à 5 minutes; puis copiez tous les fichiers de ce dossier dans un autre dossier. Si c'est moins de 5 minutes, attendez 2 minutes et revérifiez à nouveau.Comment obtenir l'heure du dernier fichier modifié dans un dossier utilisant Python

J'ai réussi à obtenir la date et l'heure du dernier fichier modifié dans un répertoire via le fichier .bat. Je stocke la sortie dans un fichier .txt, puis charge ce fichier dans une interface temporaire pour vérifier si l'heure est supérieure à 5 minutes. Je veux atteindre mes exigences grâce au script Python, car j'espère que cela se fera en une seule étape de la procédure ODI.

S'il vous plaît aider.

Merci à l'avance

+0

'os.path.getmtime (chemin)' https://docs.python.org/3/library/os.path.html – Lucas

+0

Copie possible de [Comment obtenir la date et l'heure de création et de modification du fichier en Python?] (https://stackoverflow.com/questions/237079/how- to-get-file-creation-modification-date-fois-en-python) – Roelant

+0

Qu'avez-vous essayé? – Netwave

Répondre

1

Pour supprimer le dernier fichier modifié dans un dossier si elle est plus de 5 minutes sans récursivité:

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

Salut .. Merci pour cela ... Quelques changements dans l'exigence .. si la date/heure du dernier fichier modifié est supérieure à 5 minutes, copiez tous les fichiers ce dossier à un autre dossier .. si c'est moins de 5 minutes, attendez 2 minutes et revérifiez encore. – sar12089