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
    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
    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
    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
    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

###raw>template_hook.ano_emploi###