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 :

Rechercher un mot et afficher la ligne depuis un fichier CSV [Python 3.X]


Sujet :

Python

  1. #21
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 866
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Big_kahuna Voir le message
    Je suppose que la ligne est considérée comme une liste, et que le code ne cherche que par élément entier, et comme ce que l’élement estGET /dvwa/vulnerabilities/fi/?page=../../../../../../etc/passwd HTTP/1.1
    Il ne trouve pas.
    Exactement. L'instruction item in liste_d_items ne valide que si un des items de la liste correspond exactement à l'item demandé. Dans x=["aaa", "bbbccc"], "aaa" in x sera ok mais "bbb" in x ou "ccc" in x ne le seront pas.
    Accessoirement tu n'as jusqu'à présent jamais vraiment décrit ton problème avec exactitude (style "j'ai ça en entrée, je cherche ça") mais seulement les solutions que toi tu pensais adaptées, Cas typique d'un problème XY.

    Citation Envoyé par Big_kahuna Voir le message
    Faut il écrire le csv et tout mettre le delimiter en "," ?
    Tu peux. Mais tu tranformes la donnée lue (typiquement tu rajoutes une virgule) ce qui est très dangereux car transformer équivaut à dénaturer. Comment réagira ton programme si la ligne contient déjà une virgule?
    La solution ici est de descendre au niveau en dessous. S'il ne trouve pas "passwd" dans une liste de mots, alors tu peux balayer la liste et, pour chaque mot, regarder si la chaine "passwd" se trouve dans le mot en cours. Appliqué à mon x=["aaa", "bbbccc"] cela se traduira par for s in x: print("bbb" in s).
    Et comme (remonté à toi) ce "x" de mon exemple représente une ligne de ton fichier, il te faut deux boucles: la première qui balaye chaque ligne, et la seconde qui balaye chaque mot de la ligne. Et tu as de la chance car l'instruction in se charge elle-même de la boucle de recherche sinon il te faudrait une 3° boucle.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  2. #22
    Membre habitué
    Homme Profil pro
    débutant
    Inscrit en
    Septembre 2021
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : débutant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2021
    Messages : 10
    Par défaut
    Bon Merci à ceux qui m’ont filé le coup de main, ca fonctionne enfin

    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
    # Lecture du fichier csv
    import csv
    with open('D://CyberSecurite/Cyber/Exercice.csv', newline='') as csvfile:
        reader = csv.reader(csvfile, delimiter=',')
        for row in reader:
            print(' -   '.join(row),'\n')
     
     
    # Lecture de la colonne Info
    import csv
    with open('D://CyberSecurite/Cyber/Exercice.csv') as csvfile:
        reader = csv.DictReader(csvfile)
        for row in reader:
            print("Colonne Info :", row['Info'],'\n')
     
     
    # Rechercher le mot passwd et afficher la ligne correspondante
    import csv
    mot = "passwd"  # le mot à chercher...
     
    with open('D://CyberSecurite/Cyber/Exercice.csv', newline='') as csvfile:
     
        for i in csvfile:       
            if mot in i:
                print( "Mot_localisé >>>    ", ' '.join(i))

  3. #23
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 866
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Big_kahuna Voir le message
    Bon Merci à ceux qui m’ont filé le coup de main, ca fonctionne enfin
    Ca fonctionne parce que le for i in csvfile récupère chaque ligne dans une grosse string et que le if mot in i regarde si le mot est dans la string (la ligne donc). Bref le fait que ton fichier soit du CSV n'entre absolument pas en ligne de compte dans ton traitement.
    Comme quoi tu aurais bien posé ton problème dès le départ...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #24
    Membre habitué
    Homme Profil pro
    débutant
    Inscrit en
    Septembre 2021
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : débutant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2021
    Messages : 10
    Par défaut
    Oui maintenant je comprends, mais pour poser la bonne question, il faut comprendre le problème et aussi comprendre comment ca fonctionne et ce n’était pas le cas…

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Batch] supprimer un mot dans toutes les lignes d'un fichier.csv en Batch
    Par ortollj dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 18/05/2016, 13h03
  2. Afficher une courbe depuis un fichier CSV
    Par bbkenny dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 26/05/2010, 13h10
  3. Réponses: 4
    Dernier message: 10/02/2010, 22h07
  4. afficher des lignes d'un fichier contenant un mot
    Par zinatularab dans le forum C++
    Réponses: 2
    Dernier message: 25/04/2009, 19h57

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