スポンサーリンク
find -type f
find -type fでサブディレクトリ以下のファイルを再帰的に出力できますね。
参考:[シェル]ファイル検索をfindとtreeで
例えば、下記のディレクトリ構成があったとします。
$ tree dir1/ dir1/ ├── dir2 │ ├── file2.txt │ ├── file3.txt │ └── file4.txt ├── dir3 │ └── file5.txt └── file1.txt 2 directories, 5 files
find -type fでdir1以下を再帰的にファイル出力します。
$ find ./dir1 -type f ./dir1/dir2/file2.txt ./dir1/dir2/file3.txt ./dir1/dir2/file4.txt ./dir1/dir3/file5.txt ./dir1/file1.txt
スポンサーリンク
Pythonのos.walk()
Pythonのos.walk()で、findコマンドのようにサブディレクトリ以下を再帰的にファイル出力してみます。
下記がサンプルコードになります。
os.walk()の戻り値はタプルになります。
for文の使い方を少し工夫して、findコマンドのようにprint出力しています。
$ cat sample.py #!/usr/bin/env python3 # coding: UTF-8 import os targetDirPath = './dir1' for dirPath, dirList, fileList in os.walk(targetDirPath): for fileName in fileList: print(dirPath + "/" + fileName)
下記が実行結果になります。
$ ./sample.py ./dir1/file1.txt ./dir1/dir2/file2.txt ./dir1/dir2/file3.txt ./dir1/dir2/file4.txt ./dir1/dir3/file5.txt
スポンサーリンク