目次
環境
Windowsの仕様
エディション:Windows 10 Pro
バージョン:20H2
経緯
pythonを使っていて、glob関数でフォルダの中身の中にあるcsvファイルを全部取得しようとしたら、そのフォルダが何層にもなって、さらにほかのフォルダにもcsvファイルが存在していた。
なので、今回は複数、階層があるフォルダのcsvファイルを取得する方法を勉強しました。
パスを「*」でつなぐ
階層に合わせて、「*」でつなぐとできました。
「data」というフォルダの中にまた、フォルダが2つあって、そのフォルダの1つにはcsvファイルが入っている。
もう片方のフォルダの中にはまた、フォルダがあって、その中にcsvファイルがあったとします。文字すると難しいですね(一一”)
プログラムを書きます。
from glob import glob data3 = glob('./data/**/*.csv') data4 = glob('./data/***/**/*.csv')
1行目、globをimportしています。
2行目、ここで3階層目にあるcsvファイルを取得しています。
3行目、 ここで4階層目にあるcsvファイルを取得しています。
こんな感じで取得することができました。階層の数え方が違うかもしれません。
とりあえず、「*」で階層を伸ばすと、いけますよ。
失敗談
パスをコピぺしたら、「\」になって、「¥」ボタンを押しても、「\」 になるということに悩みました。
「\」を「/」に変えると、うまくいきましたよ。
ここまで読んでいただきありがとうございました。