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"
aucune "*" n'est imprimée dans la console de sortie, indiquant que les fichiers "1.TIF" ne sont pas détectés.
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")
un conseil? Merci.
Jean-Pat
Partager