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 :

Problème de lecture d'un fichier


Sujet :

Python

  1. #1
    Membre régulier Avatar de marcoxavier
    Homme Profil pro
    ADMINISTRATEUR SYSTEME UNIX
    Inscrit en
    Mai 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : ADMINISTRATEUR SYSTEME UNIX

    Informations forums :
    Inscription : Mai 2015
    Messages : 72
    Points : 75
    Points
    75
    Par défaut Problème de lecture d'un fichier
    Bonjour,

    J'ai un fichier texte contenant des hash "hash.txt" ligne par ligne (j'ai enlever les sauts de lignes donc tout est à la suite), et j'ai besoin pour un autre script de lire ces lignes une par une.

    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
    import hashlib
     
    path = ['Fichiers\Informationstte.png', 'Fichiers\image\InformationsRH.png', 'Fichiers\Iso\debian-8.7.1-amd64-CD-1.iso', ]
     
    for p in path:
        with open(p, 'rb') as afile:
            file = afile.read()
            hashlib.md5().update(file)
            m = hashlib.md5(file).hexdigest()
            print(m)
     
    for p in path:
        with open("hash.txt") as f:
            for line in f:
                l = (line.rstrip())
                if m == l:
                    print("Le fichier " + p + " n a pas ete modifie")
                else:
                    print("Le fichier " + p + " a ete modifie")
    En fait ceci calcul le hash des fichiers, et le compare avec ceux qui sont marqués dans le fichier texte.
    Voici le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    >>>10e05bb6f2edd3ce5a36acde1c82c0f8
    >>>e2563b855b6e28cac38e05559c5dfb7d
    >>>eb8bdd4d233fab9ab980c4ee3ac0ae4a
    >>>Le fichier Fichiers\Informationstte.png a ete modifie
    >>>Le fichier Fichiers\Informationstte.png a ete modifie
    >>>Le fichier Fichiers\Informationstte.png n a pas ete modifie
    >>>Le fichier Fichiers\image\InformationsRH.png a ete modifie
    >>>Le fichier Fichiers\image\InformationsRH.png a ete modifie
    >>>Le fichier Fichiers\image\InformationsRH.png n a pas ete modifie
    >>>Le fichier Fichiers\Iso\debian-8.7.1-amd64-CD-1.iso a ete modifie
    >>>Le fichier Fichiers\Iso\debian-8.7.1-amd64-CD-1.iso a ete modifie
    >>>Le fichier Fichiers\Iso\debian-8.7.1-amd64-CD-1.iso n a pas ete modifie
    On peux voir que les hash calculés sont différents donc ça c'est bon, mais ca me prend pour chaque hash les trois chemins, je me doute qu'il y a un problème avec ma boucle For, mais je ne vois pas comment modifier ceci.

    Une petite idée?

    Merci d'avance!

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 329
    Points : 36 848
    Points
    36 848
    Par défaut
    Salut,

    Citation Envoyé par marcoxavier Voir le message
    On peux voir que les hash calculés sont différents donc ça c'est bon, mais ca me prend pour chaque hash les trois chemins, je me doute qu'il y a un problème avec ma boucle For, mais je ne vois pas comment modifier ceci.
    Ce que vous voulez faire, c'est récupérer, pour un chemin donné, l'ancienne valeur du hash et la comparer à sa nouvelle valeur. Donc déjà, stocker les hash sans savoir à quels fichiers ils correspondent, çà ne va pas le faire...
    Et cela n'est pas un problème de boucle "for" mais de conception i.e. vous n'avez même pas pensé qu'il pourrait être utile de d'associer chemin et hash pour faire cette comparaison.

    - W

  3. #3
    Membre régulier Avatar de marcoxavier
    Homme Profil pro
    ADMINISTRATEUR SYSTEME UNIX
    Inscrit en
    Mai 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : ADMINISTRATEUR SYSTEME UNIX

    Informations forums :
    Inscription : Mai 2015
    Messages : 72
    Points : 75
    Points
    75
    Par défaut
    À la base dans mon fichier "hash.txt" j'avais mis le chemin du fichier correspondant à côté avec un # pour commenter, seulement lorsque je faisais la comparaison, lors de la lecture du fichier, il me prenais aussi ce qu'il y avait après le # donc le hash n'étais pas valide..

    Je l'ai donc retiré..

    Actuellement je me répère grave au fait que les nouveaux hash calculés et ceux stockés sont calculés dans le même ordre, donc je sais à quoi il correspondent

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 329
    Points : 36 848
    Points
    36 848
    Par défaut
    Citation Envoyé par marcoxavier Voir le message
    Actuellement je me répère grave au fait que les nouveaux hash calculés et ceux stockés sont calculés dans le même ordre, donc je sais à quoi il correspondent
    Ben alors il faut comparer le i-ème ancien hash avec le i-ème nouveau hash (que vous n'avez pas).
    De toutes façons, il faut réfléchir à une solution sur le papier avant de vouloir essayer de la coder. Et pour arriver à traduire ses idées en code, il faut avoir appris plutôt que de bricoler avec le peu qu'on sait. Et pour apprendre, ouvrir un tuto. et passer du temps à apprendre à jouer avec les constructions et les structures de bases est indispensable.

    - W

  5. #5
    Membre régulier Avatar de marcoxavier
    Homme Profil pro
    ADMINISTRATEUR SYSTEME UNIX
    Inscrit en
    Mai 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : ADMINISTRATEUR SYSTEME UNIX

    Informations forums :
    Inscription : Mai 2015
    Messages : 72
    Points : 75
    Points
    75
    Par défaut
    Ok je ferme le sujet, je vais chercher de mon côté merci quand meme

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

Discussions similaires

  1. [VBnet] Problème de lecture d'un fichier texte.
    Par dibeloni dans le forum Windows Forms
    Réponses: 3
    Dernier message: 31/03/2006, 19h12
  2. [VB6] Problème de lecture d'un fichier excel
    Par Requin15 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 23/03/2006, 17h10
  3. Problème de lecture d'un fichier
    Par rvweb dans le forum C++
    Réponses: 3
    Dernier message: 30/12/2005, 21h03
  4. Réponses: 2
    Dernier message: 28/12/2005, 15h00
  5. Problème de lecture dans un fichier xml
    Par Pyra dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2005, 00h13

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