IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

supprimer des fichiers en fonction de la date de modification


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2016
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2016
    Messages : 80
    Points : 34
    Points
    34
    Par défaut supprimer des fichiers en fonction de la date de modification
    Bonsoir a tous, j'aurais aimé savoir s'il existait une technique en python pour supprimer des fichiers en fonction de la date de modification par exemple :

    fichier 1 : modifié le 01/06/2016 22h56
    fichier 2 : modifié le 01/06/2016 22h57
    fichier 3 : modifié le 01/06/2016 22h58

    je recherche un script ou bout de script pour par exemple supprimer les fichiers qui ont été crée 2 min ou plus après le lancement de mon script donc ici si je lance a 22h58, le fichier 1 serait supprimé...

    Je vous remercie par avance !

    Julien

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 483
    Points : 9 282
    Points
    9 282
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Si on exclut les subtilités du genre "localtime":

    Le temps au lancement du programme est obtenu par time.time() en secondes décimales depuis l'epoch.

    Le temps de dernière modif d'un fichier est obtenu par os.path.getmtime(monfichier) en secondes décimales depuis l'epoch.

    (L'epoch est la date de référence qui peut dépendre de l'OS. On la trouve avec time.gmtime(0), mais on ne raisonne ici que sur des différences)

    Si l'écart est supérieur à 120s (=2mn), on supprime le fichier avec os.remove(monfichier)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2016
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2016
    Messages : 80
    Points : 34
    Points
    34
    Par défaut
    Bonjour Tyrtamos,

    Merci de tes conseils, je vais essayer de créer un script avec ceux-ci !

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2016
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2016
    Messages : 80
    Points : 34
    Points
    34
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    import os,time,stat
     
    one_minute_ago = time.time() - 20
    folder = 'C:\\Users\\
    os.chdir(folder)
    for somefile in os.listdir('.'):
        mtime=os.path.getmtime(somefile)
        if mtime < one_minute_ago:
            os.unlink(somefile)
    je sais pas si c'est cela ou si l'on peut l'optimiser mais sa a l'air de fonctionner....

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 302
    Points : 6 782
    Points
    6 782
    Par défaut
    Salut,

    Si je lis bien ton code tu effaces tout ce qui a plus de vingt secondes d'âge de ton dossier C:\user ?

    Vraiment tout, hein !

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2016
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2016
    Messages : 80
    Points : 34
    Points
    34
    Par défaut
    A mince j'ai oublié de changer, c'était pour tester donc c'est 120 ! mon but est de supprimer tous les fichiers qui sont crées a plus de 2 minutes du moment ou je lance le script

Discussions similaires

  1. [Batch] Supprimer des fichiers en fonction de leur date
    Par charlix dans le forum Scripts/Batch
    Réponses: 55
    Dernier message: 05/10/2015, 17h18
  2. [Batch] supprimer des fichiers en fonction de la date de creation
    Par choupinou22 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 13/04/2015, 20h47
  3. Supprimer des fichiers en fonction d'une date
    Par Sh4dow49 dans le forum Administration système
    Réponses: 1
    Dernier message: 02/06/2009, 22h36
  4. supprimer des fichiers sous dos en fonction de leur date
    Par nikoko dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 28/04/2008, 16h37
  5. Supprimer des fichiers en fonction de la date sous DOS
    Par charlix dans le forum Windows
    Réponses: 0
    Dernier message: 21/03/2008, 08h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo