指定フォルダ配下(サブフォルダ含む)の
・全ての対象ファイル
に対し、処理を行うコードを記載します!
コード
ここでは例として
・デスクトップにある「test」フォルダ配下の
・全てのcsvファイルのみに対して処理(ファイルパスを画面へ出力)
をします。
※「test」フォルダには「csvファイルを含む複数のファイル」があります。
※「test」フォルダには「sub」フォルダがあります。
※「sub」フォルダには「csvファイルを含む複数のファイル」があります。
import os
# 対象フォルダ
target_folder = r'C:\Users\lunch\Desktop\test'
# 対象ファイル
target_file = 'csv'
for cur_dir, dirs, files in os.walk(target_folder):
for file in files:
# ファイル名を小文字にした後、「最後の文字列(=拡張子)」を判定
if not file.lower().endswith((target_file)):
continue
# ファイルパスを組み立て
filePath = os.path.join(cur_dir, file)
print(filePath)
実行結果
指定フォルダ配下(サブフォルダ含む)の、全ての対象ファイルに対して処理できました。
※サブフォルダも含め、全てのcsvファイルのみに対して処理できました。
参考①
標準ライブラリ「pathlib」モジュールでも同様のことができます。
import pathlib
# 対象フォルダ
targetFolder = r'C:\Users\user\Desktop\test'
# 対象ファイル
targetFile = 'csv'
for file in pathlib.Path(targetFolder).glob('**\*.' + targetFile):
print(file)
参考②
上記で使用した以下の詳細は、公式サイトをご確認ください
●標準ライブラリ「os」モジュールの「walk」
●「strクラス」クラスの「lower」メソッド
●「strクラス」クラスの「endswith」メソッド
●標準ライブラリ「os.path」モジュールの「join」
●標準ライブラリ「pathlib」モジュール