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 :

format de date


Sujet :

Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 76
    Points
    76
    Par défaut format de date
    Bonjour,

    J'ai écrit un petit programme qui me permet, à partir d'une liste de fichier, d'identifier les doublons, de les dater et d'estimer leur taille.
    Or tout se déroule à merveille, mais lorsque je demande de faire un print de la date, ma date est dans un format étrange. J'ai regardé dans la FAQ et parcouru le forum mais je n'ai rien trouvé de semblable.
    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    import os.path
    
    
    garder = open('D:\\Etudes\\donnees_liste_tout.txt', 'r')
    agarder = garder.readlines()
    liste_de_fichier = []
    nom_f = []
    list_doublons = []
    dico = {}
    log = []
    garder.close()
    
    def extraction(agarder):
        for chemin in agarder:
            chemin = chemin.strip()
            nom_fichier = os.path.basename(chemin)
            liste_de_fichier.append((nom_fichier, chemin))
            
    def doublons(liste_de_fichier):
        for l in liste_de_fichier:
            ##nous mettons toutes les clefs dans une liste
            nom_f.append(l[0])
    
            ##nous filtrons nos doublons et les ajoutons dans la liste list_doublons
        for k in nom_f:
            if nom_f.count(k) > 1:
                if k not in list_doublons:
                    list_doublons.append(k)
        
        for m in list_doublons:
            liste_ephemere =[]
    ##Nous allons maintenant chercher tout les chemins associ?s ? nos doublons
            for n in liste_de_fichier:
                if m == n[0]:
    ##nous les inserons dans une liste ephemere
                    liste_ephemere.append(n[1])
    ##Tout les chemins seront associes au nom du fichier
            dico[m] = liste_ephemere
    
    def log_rapport(dico):
        for clef in dico.keys():
            for valeurs in dico.values():
                compte = 0
                for chemin_donnees in valeurs:
                    try:
                        compte = compte + 1
                        date_modif = os.path.getmtime(chemin_donnees)
                        taille_fich = os.path.getsize(chemin_donnees)
                        log.append((clef,chemin_donnees, date_modif, taille_fich))
                        print 'le fichier: %s apparait %i fois a la date %d et a la taille de %i' % (clef, compte, date_modif, taille_fich)
                    except:
                        print 'le fichier: '+ clef + ' n existe plus'
                        rapport = 'le fichier n existe plus'
                        log.append(chemin_donnees + ' : ' + rapport)
                        
        
    extraction(agarder)
    doublons(liste_de_fichier)
    log_rapport(dico)
    Voila si quelqu'un à des idées.

    La date est dans ce format : EX: 1187684864??

  2. #2
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    Tu obtiens un timestamp, le nombre de seconde ecoulé depuis 1970 (je crois).

    Tu peux alors faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ladate = datetime.date.fromtimestamp(1187684864)
    print ladate.strftime("%Y-%m-%d %H:%M:%S")
    La doc du module datetime et cette page pour les options de formatage.
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 76
    Points
    76
    Par défaut
    Merci pacificator,

    Par contre j'ai encore un petit souci. La date de modification de mes fichiers est exacte mais le problème vient maintenant de l'heure qui est toujours de 00:00:00. Quand je fait un print sur ma variable ladate, il apparait qu'il n'y a que années, les mois et jours mais pas les heures, minutes, secondes.
    est-ce getmtime est la bonne méthode pour accéder à ces données?

  4. #4
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    Au temps pour moi!!

    L'objet date ne gére pas les heures-minutes-secondes, il convient donc d'utiliser un objet datetime, de la sorte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ladate = datetime.datetime.fromtimestamp(1187684864)
    print ladate.strftime("%Y-%m-%d %H:%M:%S")
    Desolé de t'avoir aiguillé sur une fausse piste.
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 76
    Points
    76
    Par défaut
    Bonjour,

    Merci pacificator, tout marche nickel.

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

Discussions similaires

  1. Format de date
    Par royrremi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/06/2004, 17h32
  2. Détecter le format de date au démarrage
    Par stigma dans le forum Access
    Réponses: 2
    Dernier message: 20/02/2004, 11h04
  3. Réponses: 11
    Dernier message: 02/09/2003, 14h20
  4. Problème de Format de date
    Par titititi007 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/06/2003, 08h19
  5. Réponses: 3
    Dernier message: 06/05/2002, 18h24

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