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