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 :

python parse multiple


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Josuha
    Inscrit en
    Août 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Josuha
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut python parse multiple
    Bonjour,

    j'aurai besoin d'un petit coup de main pour mon projet.

    le projet est le suivant:

    1-j'ai une liste de fichiers xml contenu dans le fichier list_fichiers_xml.txt.

    je suis débutant et
    je veux pouvoir récupérer la ligne une et l'utiliser comme argument (ici hostname.xml) pour le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import xml.etree.ElementTree as ET
     
    tree = ET.parse('hostname.xml')
    root = tree.getroot()
    for name in root.iter('address'):
            name = name.get('addr')
    for domain in root.iter('service'):
            domain = domain.get('hostname')
            print(domain,name)
    je veux ensuite relire le fichier et passer à la ligne 2 ect ..

    j'ai essayé quelques bout de code pour lire le fichier et recupere le nom du fichier dans mon fichier txt mais je tombe sur un probléme de format.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    f = open("list_fichiers_xml.txt", "r")
    for x in f:
       print(x)
     print(f.readline())
    et en utilisant (x) comme argument a la place de ('hostname.xml')
    j'ai un message d'erreur
    FileNotFoundError: [Errno 2] No such file or directory: 'hostname.xml\n'
    étant la première ligne de mon fichier sans \n.

    voila j'ai passé beaucoup de temps a chercher une solution pour faire une boucle qui commencerait par lire la première ligne puis exécuterait le code (parse) et passerait a la ligne suivante jusqu'à la fin du fichier txt. voila je sais pas comment faire et je je demande un peu d'aide.

    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Un fichier texte est un fichier où il y a des fin de lignes et .readline() retourne une ligne qui se termine par '\n' (fin de ligne). Pour le suprimer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> str.strip('hostname.xml\n')
    'hostname.xml'
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Josuha
    Inscrit en
    Août 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Josuha
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    du coup je remplace quoi par quoi ? désolé pour mon ignorance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    f = open("list_fichiers_xml.txt", "r")
    for x in f:
     print(f.readline())
     
    import xml.etree.ElementTree as ET
     
    tree = ET.parse(x)
    root = tree.getroot()
    for name in root.iter('address'):
            name = name.get('addr')
    for domain in root.iter('service'):
            domain = domain.get('hostname')
            print(domain,name)
    Merci

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par Josuha Voir le message
    du coup je remplace quoi par quoi ? désolé pour mon ignorance
    A ce point? Ouvrez un tuto. et apprenez les bases, je ne vais pas vous faire la dictée...

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

Discussions similaires

  1. Tache CRON avec Python Lancement multiple
    Par michelgard dans le forum Debian
    Réponses: 2
    Dernier message: 10/03/2016, 23h25
  2. POO Python, instanciation multiple ?
    Par Ziranium dans le forum Général Python
    Réponses: 8
    Dernier message: 28/04/2011, 22h07
  3. python et la liste de choix multiple
    Par ghadroud dans le forum Réseau/Web
    Réponses: 11
    Dernier message: 09/03/2009, 20h37
  4. Connexions multiples Python - Mysql
    Par raoulchatigre dans le forum Bibliothèques tierces
    Réponses: 6
    Dernier message: 01/04/2008, 23h08
  5. Réponses: 3
    Dernier message: 20/07/2007, 17h12

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