Pythonでディレクトリを再帰的にスキャン

Pythonでディレクトリを再帰的にスキャンしてファイルを取得したい場合はos.scandirを使って次のような感じでできるそうです。

>>> import os
>>> def scandir(path='.'):
...   for e in os.scandir(path):
...     if e.is_dir():
...       yield from scandir(e.path)
...     else:
...       yield e
...
>>> for e in scandir():
...   print(e.path)
...
./directory/file1.txt
./directory/file2.txt
./file3.txt

シンボリックリンクかどうかのチェックはfollow_symlinksが使えるようです。

e.is_dir(follow_symlinks = False)

リンク

os — Miscellaneous operating system interfaces — Python 3.7.2 documentation
https://docs.python.org/3/library/os.html

コメントを残す

メールアドレスが公開されることはありません。