【Python】 再帰的にファイルを取得する

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)
        
if __name__ == "__main__":
    path_directory = "SAMPLE"
    for file in find_all_files(path_directory):
        print(file)

treeコマンドのようにファイルを取得できる.
os.walk()とos.path.join()は始めて知った.
os.path.join(path_directory, name_file)でpath_directory + "/" + name_fileとしてくれるようだ.
普段

path ="aaaa"
for file in os.listdir(path):
    path_file = path + "/" + file

とファイルのpathを取得していたためこれは少し感動.
さらにwindowslinuxの"\\"と"/"の違いも一々気にする必要なさそうで便利!

参考
https://qiita.com/suin/items/cdef17e447ceeff6e79d