Cherche Algo tree (récursif)

Kult -  
modulo22 Messages postés 12 Statut Membre -
Salut,

Je cherche l'algo permettant de faire la commande tree en C. J'ai beau réfléchir dans ma tête en récursif, je n'arrive pas à modifier ce bout de code en python qui permet de faire tree! Le problème c'est qu'il n'est pas possible de faire plus de 2 espaces puisque quand on fait la récursivité on incrémente prefix de '| '.
Or souvent, on a des cas où l'espace DOIT être plus important que 2 espaces, et avec ce système d'incrémentation de préfixe, c'est pas possible!
Qqn a une idée ?

Voila le code en question:

from os import listdir
from os.path import isdir, join
def affiche_arbre(repertoire='.', prefix=''):
sousrep = listdir(repertoire)
for f in sousrep:
if f is sousrep[-1]:
# pour la dernière entrée du répertoire, on met un `
# plutôt qu'un |
print prefix + '`-- ' + f
else:
print prefix + '|-- ' + f
fullname = join(repertoire,f)
if isdir(fullname):
affiche_arbre(fullname,prefix+'| ')

Petite explication:
listdir() renvoit le contenu d'un répertoire
join() sert à combiner des morceaux de chemin dans un système de fichier
avec les bons séparateurs et tout et tout
isdir() renvoie vrai si l'argument est un répertoire, et faux sinon

Merci, je commence à désespérer...
A voir également:

1 réponse

modulo22 Messages postés 12 Statut Membre 5
 
salut,

peut-être ça?
dsl pour la syntaxe, je ne connais pas le language

from os import listdir
from os.path import isdir, join
def affiche_arbre(repertoire='.', prefix=''):
sousrep = listdir(repertoire)
for f in sousrep:
fullname = join(repertoire,f)
if f is sousrep[-1]:
# pour la dernière entrée du répertoire, on met un `
# plutôt qu'un |
print prefix + '`-- ' + f
if isdir(fullname):
affiche_arbre(fullname,prefix.substring(0,prefix.length-1)+' | ')
else:
print prefix + '|-- ' + f
if isdir(fullname):
affiche_arbre(fullname,prefix+'| ')
0