ファイル名一括変更のプログラム作成【Python】

2023年5月18日

最近イラスト生成AIにハマった事で大量の画像ファイルを定期的に整理する必要が生じたため、Python でファイル名を一括で変更するプログラムを作成。そのメモついでの記事となります。

プログラム本文

内容はシンプルに、Python標準のosライブラリを用いて作成します。

仕様としては以下。

  • コンソールに作業するフォルダパスを入力
  • 連番の前に付与する接頭辞を付ける場合は入力
  • 最後に読み込む対象のファイル拡張子を指定
  • ファイル名を作成日時順に接頭辞 + “1"から連番となるように一括変更
import os

# 対象のフォルダパスを指定
folder_path = input('作業するフォルダのパスを入力: ')

# 変更後のファイル名の接頭辞を指定
prefix = input('ファイル名の接頭辞を指定(imgなど): ')

# 読み込む拡張子を指定
extension = '.' + input('読み込む対象の拡張子を指定(pngなど): ')

# フォルダ内のファイル名の一覧を取得して作成時刻順にソート
file_list = sorted(os.listdir(folder_path), key=lambda x: os.stat(
    os.path.join(folder_path, x)).st_ctime)

# ファイル名を一括で変更する
for i, file_name in enumerate(file_list):
    if file_name.endswith(extension):
        # 新しいファイル名を作成
        new_file_name = f"{prefix}{i+1}{extension}"
        # ファイル名を変更
        os.rename(os.path.join(folder_path, file_name),
                  os.path.join(folder_path, new_file_name))

他の基準でソートする場合

作成日時以外でソートしたい場合は、以下から選んで変更する事でOK。

atime: 最終アクセス日時
mtime: 最終更新日時
ctime: 作成日時


以上、何かの参考になれば幸いです。


珈琲1杯でもおごるつもりでご支援して頂けたら大変喜びます😊

スポンサーリンク