Je essaie de faire quelque chose à tous les fichiers sous un chemin donné. Je ne veux pas collecter tous les noms de fichiers au préalable puis faire quelque chose avec eux, donc j'ai essayé ceci :
import os
import stat
def explore(p):
s = ''
list = os.listdir(p)
for a in list:
path = p + '/' + a
stat_info = os.lstat(path )
if stat.S_ISDIR(stat_info.st_mode):
explore(path)
else:
yield path
if __name__ == "__main__":
for x in explore('.'):
print '-->', x
Mais ce code saute les répertoires lorsqu'il les atteint, au lieu de donner leur contenu. Qu'est-ce que je fais de faux ?
0 votes
Certaines langues peuvent produire une séquence entière, pas simplement des éléments individuels. Je ne pense pas que Python en fasse partie. mindscapehq.com/blog/index.php/2011/02/28/…
0 votes
Depuis le titre suggère un problème plus général que celui pouvant être résolu par os.walk, considérons ceci: def explorer(p): if isinstance(p, (list, tuple)): for x in p: explorer(p) else: yield p Cela a le même problème. Pourquoi cela ne fonctionne-t-il pas?