【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を取得していたためこれは少し感動.
さらにwindowsとlinuxの"\\"と"/"の違いも一々気にする必要なさそうで便利!