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 :

Renommer un fichier avec la date et l'heure


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2016
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Renommer un fichier avec la date et l'heure
    Bonjour à tous,
    Je n'arrive pas a trouver de commande pour renommer un fichier avec le date et l'heure, quelqu'un saurait-il comment faire?
    Merci d'avance
    Tugdual 87

  2. #2
    Expert éminent

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

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

    La date s'obtient avec le module datetime[0] et sera formatée avec strftime
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    >>> from datetime import datetime
    >>> d = datetime.now()
    >>> d
    datetime.datetime(2016, 2, 13, 9, 15, 48, 559888)
    >>> f = d.strftime('-%Y-%m-%d-%H-%M-%S')
    >>> f
    '-2016-02-13-09-15-48'
    Les chemins de fichier se gèrent avec os.path[1]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    >>> from os import path
    >>> p = path.splitext('/chemin/fichier/nom.jpg')
    >>> p
    ('/chemin/fichier/nom', '.jpg')
    >>> new = p[0] + f + p[1]
    >>> new
    '/chemin/fichier/nom-2016-02-13-09-15-48.jpg'
    Voilà, ya plus qu'a.


    [0] https://docs.python.org/3/library/da...etime.datetime
    [1] https://docs.python.org/3/library/os...module-os.path

  3. #3
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    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 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Pour renommer un fichier, c'est: os.rename(anciennom, nouveaunom)

    Pour changer les dates de modification et de dernier accès à une date précise:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    from datetime import datetime
     
    dt = datetime(2016,1,1,8,9) # le 1/1/2016 à 8h 9mn
     
    tps = int(dt.timestamp()) # nb de seconde depuis l'EPOCH de l'OS
     
    os.utime(nomdufichier, (tps, tps)) # modif des 2 dates du fichier
    NB: l'EPOCH change avec l'OS. A ma connaissance, c'est le 1/1/1970 pour Linux et le 1/1/1601 pour Windows. Mais timestamp semble s'en débrouiller.

    Il existe une 3ème date, mais elle dépend du système de fichier, et il est même possible qu'elle n'existe pas toujours. Si c'est Windows, c'est la "date de création" du fichier, mais je ne sais pas la changer. Voir peut-être avec les modules spécifiques Windows comme Pywin32.

    Dans tous les cas, on peut lire les infos d'un fichier avec os.stat(nomdufichier). On peut ainsi obtenir les 3 dates (en secondes depuis l'EPOCH) du fichier comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    print("Date de création: ", os.stat(nomdufichier).st_ctime)
    print("Date de modification: ", os.stat(nomdufichier).st_mtime)
    print("Date du dernier accès: ", os.stat(nomdufichier).st_atime)
    Pour avoir les dates en clair, on peut utiliser datetime.fromtimestamp(). Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ct = os.stat(nomdufichier).st_ctime
    print(datetime.fromtimestamp(ct)) # date de création
     
    mt = os.stat(nomdufichier).st_mtime
    print(datetime.fromtimestamp(mt)) # date de modif
     
    at = os.stat(nomdufichier).st_atime
    print(datetime.fromtimestamp(at)) # date de dernier accès
    Il y a tout de même des subtilités dans ce genre de manip: voir la doc pour plus d'infos!
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  4. #4
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2016
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Salut VinsS,

    Merci pour ta réponse, mais je n'arrive pas à combiné les 2 codes que tu m'as donné sans avoir des erreures, pourrais-tu me les combiné stp?
    Merci d'avance
    Tugdual

  5. #5
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    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 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Désolé, je n'avais compris qu'il s'agissait d'intégrer la date dans le nom du fichier. Je fais ça très souvent et voilà comment je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    nom, ext = os.path.splitext(fichier)
    dateiso = time.strftime('%Y_%m_%d_%H_%M_%S')
    os.rename(fichier, nom + '_' + dateiso + ext)
    Ça donne quelque chose comme:

    xxxxx.txt ==> xxxxx_2016_02_13_07_15_03.txt

    L'intérêt d'avoir la date à ce format est que la liste des fichiers triée en ordre alphabétique correspond aussi à l'ordre chronologique.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  6. #6
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2016
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Ca marche, merci beaucoup à vous deux
    Tugdual

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Renommer un fichier avec la date et l'heure
    Par Tugdual75 dans le forum Général Python
    Réponses: 1
    Dernier message: 17/07/2015, 17h26
  2. Renommer un fichier avec une date
    Par Sh4dow49 dans le forum Linux
    Réponses: 3
    Dernier message: 15/12/2008, 14h22
  3. Renommer un fichier avec la date
    Par jnauche dans le forum VBScript
    Réponses: 2
    Dernier message: 30/09/2008, 10h45
  4. [Dates] Renommer un fichier avec la date
    Par VFone dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2008, 12h23
  5. [batch] renommer un fichier avec la date
    Par arcane dans le forum Windows
    Réponses: 3
    Dernier message: 13/05/2005, 15h32

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