Python - フォルダ内の複数のファイルに対して同じ処理を実行
以前、シェルスクリプトでフォルダ内の複数ファイルに対して同じ処理を実行する方法について記事を書きました。
今回は、Pythonコードで同じことを行う方法についてまとめたいと思います。
サンプルコード
以下は引数で指定したディレクトリパス以下のファイルに対して任意の処理をするPythonスクリプト(sample.py)です。パスの指定の仕方を3通り記載していますので、必要に応じて選択してください。
import glob import re import os import argparse def main(): # parserを作成 parser = argparse.ArgumentParser() parser.add_argument('dir_path', help='designate dir path') args = parser.parse_args() # ワイルドカードで条件を満たすパスの文字列を指定 pathlist = glob.glob(args.dir_path + '/*.text') # python3.5以降 サブディレクトリも検索 # **の部分があらゆる中間ディレクトリに対応 pathlist = glob.glob(args.dir_path + '/**/*.text', recursive=True) # ファイル名のみを取得 pathlist = [os.path.basename(p) for p in glob.glob(args.dir_path + '/**', recursive=True) if os.path.isfile(p)] for path in pathlist: ##ここで何か処理 print(path) if __name__ == '__main__': main()
実行例(カレントディレクトリ以下のファイルを指定)
$ python sample.py ./
参考サイト
こちらを参考にさせていただきました。ありがとうございます。