Lors de la création récursive d'une liste de tous les fichiers et répertoires en Python, il est plus facile de créer une fonction qui combine ʻos.walk () et un générateur (
yield`).
Par exemple, cette structure de répertoires
$ tree /tmp/test
/tmp/test
├── 1
│ ├── a
│ │ ├── A
│ │ ├── B
│ │ └── hoge
│ └── b
│ ├── A
│ ├── B
│ └── hoge
└── 2
├── bar
├── c
│ ├── buzz
│ └── fizz
└── foo
9 directories, 6 files
import os
def find_all_files(directory):
for root, dirs, files in os.walk(directory):
yield root
for file in files:
yield os.path.join(root, file)
for file in find_all_files('/tmp/test'):
print file
production
/tmp/test
/tmp/test/1
/tmp/test/1/a
/tmp/test/1/a/hoge
/tmp/test/1/a/A
/tmp/test/1/a/B
/tmp/test/1/b
/tmp/test/1/b/hoge
/tmp/test/1/b/A
/tmp/test/1/b/B
/tmp/test/2
/tmp/test/2/bar
/tmp/test/2/foo
/tmp/test/2/c
/tmp/test/2/c/buzz
/tmp/test/2/c/fizz
RecursiveIteratorIterator
Recommended Posts