エンジニア プログラミング

Pythonでフォルダ内の画像を一括連番リネーム!

Pythonで画像ファイルを連番リネームをしてみたのでやった方法について記載します!
連番リネームは、画像を整理する際や特定の用途に合わせてファイル名を統一したいときに便利です。

Pythonでの連番リネーム方法

まず、Pythonを使って画像ファイルを連番でリネームする方法を見ていきましょう。
以下のコードは、指定したフォルダ内の全ての画像ファイルをファイル名の昇順の連番でリネームする簡単な例です。

import os

def rename_files(directory, prefix="file_", extension=""):
    # フォルダ内のファイル一覧を取得し、ファイル名でソート
    files = sorted([f for f in os.listdir(directory) if os.path.isfile(os.path.join(directory, f))])

    # ソートされたファイルを連番でリネーム
    for i, filename in enumerate(files):
        # ファイルの拡張子が指定されていない場合は、元の拡張子を使用
        file_extension = extension if extension else os.path.splitext(filename)[1]
        
        # 新しいファイル名を作成
        new_name = f"{prefix}{i+1:03d}{file_extension}"
        src = os.path.join(directory, filename)
        dst = os.path.join(directory, new_name)
        
        # ファイルのリネームを実行
        os.rename(src, dst)
        print(f"Renamed '{filename}' to '{new_name}'")

# 使用例
directory = "/path/to/your/directory"
rename_files(directory, prefix="image_", extension=".jpg")

スクリプトの説明

  • directory: リネームしたいファイルが入っているフォルダのパスを指定します。
  • prefix: 新しいファイル名のプレフィックス(例: "image_")。
  • extension: ファイルの拡張子を指定します。指定しない場合は、元のファイルの拡張子が使われます。

実行手順

  1. スクリプトをPythonファイル(例: rename_files.py)として保存します。
  2. ターミナルまたはコマンドプロンプトでスクリプトを実行します。
python rename_files.py

注意点

  • スクリプトを実行する前に、リネーム対象のファイルを確認してください。
  • 元のファイル名が変更されるため、必要に応じてバックアップを取っておくことをおすすめします。

このスクリプトは、ファイル名を昇順にソートし、その順序に基づいてファイルを連番でリネームできます。
ソートの条件を変えれば希望の形式で連番リネームできるかと思います。

  • この記事を書いた人

あるせ

上場ゲーム会社の現役プログラマーで1児の父です。 プログラミングを始めたい方向けのライトな記事からゲーム開発の現場で得た知見まで幅広く発信します!

PickUp

1

bool変数の命名の重要性 プログラムを書くとき、bool型の変数名の付け方はとても重要です!なぜなら、コードを読む人にとって、変数名からその役割が直感的に分かることが求められるからです。bool値は ...

2

記事文章 はじめに WordPressを使ってブログを運営していると、毎回アイキャッチ画像を設定するのが手間ですよね!今回は、アイキャッチ画像を自動で生成するプラグインの作り方をご紹介します。これで作 ...

3

第1位: SourceTree SourceTreeは、無料で使える高機能なGitクライアントです。直感的なUIで操作がしやすく、初めてGitを使う人にもぴったり!ブランチの管理やマージが簡単にできる ...

4

はじめに インターネットの回線速度が気になることってありますよね!今回は、5分ごとに回線速度を計測し、そのデータをグラフにする方法を紹介します。PythonとSpeedtest CLIを使えば、比較的 ...

-エンジニア, プログラミング
-,