Merci pour l'exemple, il était parlant. C'est vrai que je n'ai pas vraiment pris la peine de comprendre ce que tu voulais dire par :
Les fichiers de "files" sont ceux de "root", "dirs" ce sont les sous répertoires de "root"
Je n'avais pas fait la relation entre cette explication et la récursivité de la fonction. Ce n'est pas forcément une question de syntaxe "for", c'était plutot, comme je l'ai dit avant, implémenter le walk de manière à ce qu'il passe sur 1 répertoire, puis son contenu, puis le répertoire suivant et son contenu, etc...
Ton exemple est très démonstratif, comparé à l'explication de départ
En fait, au final, j'arrive à ça :
import os, mimetypes
authorized_types = ('application/x-shockwave-flash', 'image/jpeg', 'image/png')
with_extension = 1
path = os.path.join( os.getcwd(), 'ressources' )
final = ''
for root, dirs, files in os.walk(path):
# get length of path
if( root is path ) :
count = len(root)
# get directories
if( root is not path ) :
final += "|" + root[count:] + "="
# get files in each directories
if(files):
for f in files:
# test mimetype of file
mimetype = mimetypes.guess_type( os.path.join( path, f ))
if mimetype[0] == None :
mmt = "None"
else :
mmt = mimetype[0]
# test authorized files and extension requirement
if mmt in authorized_types or "*" in authorized_types :
if int(with_extension) == 0 :
f = f.split('.')[0]
final += f +";"
final = final[0:-1]
final = final[1:]
print final
Y a surement des trucs qu'on peut faire plus simplement (genre faire un if sur une ligne pour le mimetype[0] == None, mais je sais pas si ça existe en python), je ne fais que débuter en python. Mais graçe à toi, j'ai déjà pu comprendre ça, je vais pouvoir avancer.
Merci !!