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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    débutant
    Inscrit en
    Septembre 2021
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Lot et Garonne (Aquitaine)

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

    Informations forums :
    Inscription : Septembre 2021
    Messages : 10
    Par défaut Rechercher un mot et afficher la ligne depuis un fichier CSV
    Bonjour,

    Je suis débutant en programmation et j’ai besoin de Rechercher un mot et afficher la ligne depuis un ficchier CSV.

    J’ai réussi a importer, afficher toutes les lignes et colonnes, extraire une seule colonne.
    Mais je n’arrive pas pour la recherche d’un mot, à l’afficher et à afficher_sa ligne.

    Auriez vous une solution

    Merci

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    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 840
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Une fois que tu as la ligne, tu peux utiliser str.split(n) pour la couper sur le caractère "n" (c'est du CSV donc il y a un caractère de séparation) ce qui te donne une liste de champs.
    Te suffit de boucler sur les champs et regarder si le mot y est => il y est tu affiches la ligne.

    Ensuite tu as le module csv qui peut te faciliter le travail (surtout si ton CSV est exotique avec par exemple des sauts de ligne dans un champ). Par exemple csv.reader() se charge de lire et découper proprement le fichier.
    Exemple
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import csv
    with open("xxx.csv", "r") as fp:
    	for data in csv.reader(fp, delimiter=";"): print(data, type(data))
    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]

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

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

    Informations forums :
    Inscription : Septembre 2021
    Messages : 10
    Par défaut
    Merci de ce retour rapide.

    Pour ce qui est de lire, ca été avec le manuel Python, j’utilise ca

    Lire le fichier entier, puis seulement une colonne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import csv
    with open('monfichier.csv', newline='') as csvfile:
        spamreader = csv.reader(csvfile, delimiter=',')
        for row in spamreader:
            print(', '.join(row))
     
     
     
    import csv
    with open('monfichier.csv') as csvfile:
        reader = csv.DictReader(csvfile)
        for row in reader:
            print(row['3emecolonne'])
    Maintenant ce que j’ai besoin, c’est imaginons que le fichier contient une 100aine de lignes que je n’ai pas le temps de lire et que je cherche un mot et que une fois le mot trouvé la ligne complète s’affiche ou au minimum la cellule qui contient ce mot.

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    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 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Big_kahuna Voir le message
    Maintenant ce que j’ai besoin, c’est imaginons que le fichier contient une 100aine de lignes que je n’ai pas le temps de lire et que je cherche un mot et que une fois le mot trouvé la ligne complète s’affiche ou au minimum la cellule qui contient ce mot.
    Hé ben...
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for (i, row) in enumerate(spamreader, 1):
         if mot in row: print(i, ', '.join(row))
    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]

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

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

    Informations forums :
    Inscription : Septembre 2021
    Messages : 10
    Par défaut
    Merci,

    Je dois être une buse, mais ca ne fonctionne pas, du moins je n y arrive pas… Je vais essayer de trouver pourquoi

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    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 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Big_kahuna Voir le message
    Je vais essayer de trouver pourquoi
    print(), instruction magique qui aidera à trouver plus facilement...
    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]

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Citation Envoyé par Big_kahuna Voir le message
    Je dois être une buse, mais ca ne fonctionne pas, du moins je n y arrive pas… Je vais essayer de trouver pourquoi
    Chez moi cela fonctionne en utilisant le premier code que tu as donné au post 3...

    PS: On pourrait ajouter un break à la fin du if:

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (i, row) in enumerate(spamreader, 1):
            if mot in row:
                print(i, ', '.join(row))
                break

    Idem pour le code proposé par Arioch

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

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, 12h03
  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, 12h10
  3. Réponses: 4
    Dernier message: 10/02/2010, 21h07
  4. afficher des lignes d'un fichier contenant un mot
    Par zinatularab dans le forum C++
    Réponses: 2
    Dernier message: 25/04/2009, 18h57

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