1. はじめに
この記事では、特定のフォルダの中に存在するファイルを、サブフォルダも含めて取得する方法についてメモを残します。
ここで用いたコードやファイルは以下のページにアップロードしています。
2. コードについて
2.1. MATLAB
dir関数を用いる際に、\**\
と指定すればよい。
% サブフォルダも含め、txtデータを集める txtList = dir(fullfile(pwd, 'folder1\**\*.txt')); %get list of files and folders in any subfolder % 拡張子を含めず、あらゆるファイルを取得する filelist = dir(fullfile(pwd, 'folder1\**\*')); filelist = filelist(~[filelist.isdir]); % フォルダの情報を削除する
2.2. Python
globモジュールを用いる場合を考える。MATLABの場合と同様に、Pythonの場合は /*/
をつけるとよい。
import os from glob import glob txtFiles = glob(os.getcwd() + "/folder1/*/*.txt", recursive = True) print('==== file list ====') print(txtFiles) for i in txtFiles: print('==== file name ====') print(i) # 任意の処理を行う
参考ページ
How to recursively go through all directories and sub directories and process files?
MATLABで、あるフォルダ以下のサブフォルダのリストを作る => 任意の拡張子のファイルパスを取得 (ここでは*.jpg)