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 :

Recherche mot sur 2 lignes + ajout de mot


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2017
    Messages : 8
    Par défaut Recherche mot sur 2 lignes + ajout de mot
    Bonjour à tous,

    Je débute avec Python et souhaiterai avoir quelques conseils pour bien coder. Mon projet c'est :

    1- Je dois lire un fichier txt et regrouper plusieurs lignes en 1 seule ligne, mais dans un ordre

    Un exemple :
    [BALISE]
    "PRODUIT ID" 318 "FRANCE", PRODUIT_A_FRANCE" CHINE, ALLEMAGNE, TURQUIE, SUEDE
    PRODUIT ID 318
    PRODUIT_A_FRANCE
    PRODUIT_B_FRANCE
    PRODUIT_A TURQUIE
    [BALISE]

    2- L'Ordre : est que si une ligne commence par "BALISE" et le seconde ligne commence par "PRODUIT ID", alors si la troisième ligne commence par "CATÉGORIE ID" et que l'ID du second et troisième sont identique, alors je dois regrouper les mots.

    3- Le regroupement : Les produits par Pays doivent être à coter de leur pays.

    Résultat attendu
    [BALISE]
    "PRODUIT ID"; "318"; "FRANCE"; "PRODUIT_A_FRANCE, PRODUIT_B_FRANCE";"CHINE";"ALLEMAGNE"; "TURQUIE";"PRODUIT_A_TURQUIE";"SUEDE"
    [BALISE]

    Pouvez-vous me donner quelques idées ? De mon coté, j'ai cherché sur le net, mais manque un peu d'expérience

    Je vous remercie par avance.

  2. #2
    Membre du Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2017
    Messages : 8
    Par défaut aide
    Bonjour à tous,

    Quelqu'un peut m'aider svp, je passe beaucoup de temps sur le net, mais je n'arrive à trouve une méthode pour coder. Je ne cherche pas une réponse toute faite, mais seulement des idées pour avancer.
    Pour l'instant j'ai seulement lire un fichier txt, fermer, split, joindre. Pour le reste, je n'ai pas trop comment je pourrai m'y prendre.

    Merci d'avance pour votre générosité.

    A+

    WR

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 742
    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 742
    Par défaut
    Salut,

    Il faut commencer par lire le fichier et savoir tester si la ligne commence par (avec .startswith).
    Après c'est une gestion d'état.
    On part de 0, si la ligne commence par:
    • "BALISE" et que l'état est 0, on incrémente,
    • "PRODUIT ID" et que l'état est 1, on incrémente sinon on remet à 0,
    • "CATÉGORIE ID" et que l'état est 2, on teste les ID... et on remet à 0.

    Et si vous ne postez pas du code pour montrer comment vous vous y prenez, on ne va pas l'écrire pour vous.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre du Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2017
    Messages : 8
    Par défaut
    Bonjour,

    Merci pour votre retour. Voici un début de script, pas encore terminé, j'avance doucement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    f = open("/home/user/Bureau/testpy.txt", "r")
    tab = []
    for ligne in f:
    	ln = ligne.split()
        	tab.append(ln)
    f.close()
    print tab
    Avec le script, le résultat est le suivant :
    [BALISE]["PRODUIT ID" 318 "FRANCE", PRODUIT_A_FRANCE" CHINE, ALLEMAGNE, TURQUIE, SUEDE][PRODUIT ID 318, PRODUIT_A_FRANCE][PRODUIT_B_FRANCE,PRODUIT_A TURQUIE][BALISE]

    Or je souhaiterai avoir le résultat suivant :
    [BALISE]
    ["PRODUIT ID"][ 318][ "FRANCE"][PRODUIT_A_FRANCE"] [CHINE] [ALLEMAGNE] [TURQUIE] [SUEDE]
    [PRODUIT ID 318] [PRODUIT_A_FRANCE]
    [PRODUIT_B_FRANCE]
    [PRODUIT_A TURQUIE]
    [BALISE]

    L'avantage d'avoir un mot par colonne va m'aider à insérer plus facilement. Quelqu'un peut me dire ce qu'il ne va pas dans mon script svp ?

    Sinon je crois avoir omis de vous dire que le fichier de source est un texte contenant x lignes des produits, séparé par le mot [BALISE]. Le but est de récupérer dans un fichier.csv, les données du fichier .txt et en 1 seule ligne (uniquement pour les données entre [BALISE]).

    Merci pour votre aide

  5. #5
    Membre du Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2017
    Messages : 8
    Par défaut Help
    Quelqu'un peut m'aider et me dire si j'ai bien commencé, svp.

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 742
    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 742
    Par défaut
    Citation Envoyé par wrozi Voir le message
    Quelqu'un peut m'aider et me dire si j'ai bien commencé, svp.
    Est-ce que votre code trie les lignes qui commencent par les chaînes de caractères mentionnées dans votre premier post?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. recherche valeur sur plusieurs lignes
    Par tamtam64 dans le forum Excel
    Réponses: 3
    Dernier message: 12/07/2015, 14h42
  2. [Batch] Recherche dynamique sur les lignes d'un fichier
    Par nanooby dans le forum Scripts/Batch
    Réponses: 28
    Dernier message: 25/09/2014, 12h20
  3. Réponses: 2
    Dernier message: 01/03/2014, 14h43
  4. [phpMyAdmin] question sur une ligne à ajouter à ma base de données
    Par jsdar dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 14/04/2007, 11h13

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