Bonsoir,
j'ai une arboresence de répertoires, ls -R donne
Dans un premier temps je voudrais recopier l'arborescence dans un fichier xml.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57.: biblio dir tree DirTree.txt lxml_dir to xml.py xmldirtree.py ./biblio: Cuisine Essais Roman Science ./biblio/Cuisine: Amerique Asie France ./biblio/Cuisine/Amerique: le chili sans pleur ./biblio/Cuisine/Asie: le riz de r à z ./biblio/Cuisine/France: escargot pour les nuls.txt tête de veau pour tous ./biblio/Essais: Politique Religion ./biblio/Essais/Politique: on nous cache tout ondr ./biblio/Essais/Religion: mon curé chez les nudistes ./biblio/Roman: r19s r20s ./biblio/Roman/r19s: le vert et le rouge ./biblio/Roman/r20s: ma vie mon oeuvre ./biblio/Science: maths physique ./biblio/Science/maths: la table de 1 ./biblio/Science/physique: th des ficelles
Mon code échoue:
Tous les sous répertoires sont au même niveau.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 # -*- coding: utf-8 -*- """ Created on Tue Jan 31 13:30:22 2012 @author: Jean-Patrick Pommier """ import lxml.etree as et import os """ Lire l'arboresence d'un répertoire projet P / | \ A B C / |\ |\ |\ a b ca b c e Stocker dans un fichier xml <P> <A> <a> <b> <c> </A> <B> <a> <b> </B> <C> <c> <e> </C> </P> """ def makeNodes(parentxml,leveldirlist): #print 'parent',parentxml print 'chidren',leveldirlist for d in leveldirlist: child=et.Element(d) parentxml.append(child) if __name__ == '__main__': topdir='/home/claire/Applications/ProjetPython/testxml/biblio' projetxml=et.Element('Project')#racine parent=projetxml for roots, dirs, files in os.walk(topdir): print roots#, '*',dirs, '*',files,'\n' makeNodes(parent,dirs) print(et.tostring(projetxml,pretty_print=True))
J'ai besoin d'un coup de main pour tranformer les répertoires enfants en répertoires parents.
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 <Project> <Roman/> <Cuisine/> <Essais/> <Science/> <r20s/> <r19s/> <Amerique/> <France/> <Asie/> <Religion/> <Politique/> <maths/> <physique/> </Project>
Merci.
Jean-Patrick
Partager