ディレクトリ内のファイルリストは、最も安易な方法は、glob を使うことであるが、
再帰的に全てのファイルリストを得るには、recursive=True が必要である。
import glob files = glob.glob("/var/tmp/**", recursive=True) for f in files: print(f)
再帰的に全てのファイルリストで、尚且つディレクトリではなくファイルに限定するならば、
pathlib の Path から、glob を使うのが良い。
is_file() で、ファイルに限定できる。
is_dir() なら、ディレクトリに限定
from pathlib import Path path = Path("/var/tmp") files = [ v for v in path.glob("**/*") if v.is_file() ] for f in files: print(f)
rglob なら、glob のパターンとして、先頭の "**/" を省略していることになり、
from pathlib import Path path = Path("/var/tmp") files = [ v for v in path.rglob("*.txt") if v.is_file() ] for f in files: print(f)
とすれば、さらに拡張子 .txt だけに絞れる