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 :

Arbre de répertoires avec LXML: ajouter les fichiers terminaux?


Sujet :

Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 91
    Points : 65
    Points
    65
    Par défaut Arbre de répertoires avec LXML: ajouter les fichiers terminaux?
    Bonjour,
    Dans un post précédent, je cherchais à construire un fichier xml avec LXML représentant une arborescence de répertoires.
    Maintenant, je voudrais bien ajouter dans cette représentation xml, les fichiers au fond de l'arborescence.
    Le dossier a la structure suivante:
    Projet/Lames/Observations/couleurs/image.TIF

    Il y a un projet, plusieurs lames (L1, L2, toto...), plusieurs dossiers observations par lame (1,2,...), pour chaque obervation, il y a différent dossier couleurs (bleu, rouge ...)

    Mais j'ai un problème, os.walk ne voit pas les fichiers dans les dossiers "couleurs"
    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
    26
    27
    28
    import lxml.etree as et
    import os
     
    def makeNodes(node_dirs, root, leveldirlist, root_level,files):
     
        for d in leveldirlist:
            child = et.Element("node{0}".format(root_level), name=d)
            nodes_dirs[os.path.join(root, d)] = child
            nodes_dirs[root].append(child)
     
    level={}            
    if __name__ == '__main__':
        topdir = '/home/claire/Applications/ImagesTest/CytoProject'
        projetxml = et.Element('CytoGenet')  # racine
        parent = projetxml
        nodes_dirs = {topdir: parent}
        ln_root = len(topdir)
        for root, dirs, files in os.walk(topdir):
            lvl = root[ln_root:].count(os.path.sep)
            makeNodes(nodes_dirs, root, dirs, lvl,files)
            if files=="1.TIF":print "*"
     
        print(et.tostring(projetxml,pretty_print=True))
        print projetxml.getchildren()[0].get("name")
        slides=projetxml.getchildren()
        metaphases=slides[0].getchildren()
        for m in metaphases:
            print m.get("name")
    aucune "*" n'est imprimée dans la console de sortie, indiquant que les fichiers "1.TIF" ne sont pas détectés.

    un conseil? Merci.

    Jean-Pat

  2. #2
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    Bonjour,

    files
    est une liste donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if "1.TIF" in files:
        ....
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 91
    Points : 65
    Points
    65
    Par défaut
    merci,
    files est une liste

    Reste à rajouter dans l'arborescence.

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/09/2011, 09h04
  2. Réponses: 0
    Dernier message: 05/11/2010, 10h51
  3. Réponses: 12
    Dernier message: 20/11/2009, 19h31
  4. Réponses: 1
    Dernier message: 25/04/2009, 16h45
  5. Parcourir un répertoire et récupérer tous les fichiers
    Par Sniper94-2 dans le forum Windows
    Réponses: 6
    Dernier message: 08/09/2005, 01h23

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