MENU

ファイル名を一括変換。CSVから無限に変える汎用Pythonツールを授けよう・・

非常にたくさんの画像ファイルなどがあるとき、「101.jpeg」とかでもいいっちゃいいんだけど、SEO的にはまあ一応ファイル名もこだわっていきたいところだよね。

でも1個1個変えてくのめんどくさすぎね?みたいな葛藤の解決策。

イメージとしては

1apple
2lemon
3melon
4tomato

みたいなCSVを作っておいて、左から右に一括変換するというやつ。

シンプルだけど使い勝手が良くて個人的にはよく使ってる。

っていうのをChatGPTに作ってもらったから特別に「オンラインサロンのメンバー限定で」公開していくよ!(嘘)

目次

まずはPythonを入れよ。話はそれからだ

前提としてPythonなのでPythonをなんらかの方法で入れてください。

ちょっと引っかかったりするかもだけど、それ系の本を何冊か読んで、その通りにやれば、やがてうまくいくはずです。

できたら、以下のPythonファイルを作っていきます。

ファイル名をCSVで一括変換するPythonファイル

.pyのファイルの方は以下のような感じにします。

import os
import pandas as pd

# CSVファイルと画像フォルダのパスを指定
csv_file = 'csvファイルの置いてあるフォルダ/name_henkan.csv'  # CSVファイルのパス
folder_path = '画像ファイルの置いてある場所'  # 画像ファイルがあるフォルダのパス

# CSVファイルを読み込む
df = pd.read_csv(csv_file, header=None)
df.columns = ['old_name', 'new_name']  # 'old_name' は現在の番号, 'new_name' は新しい名前

# ファイル名を変更する
for index, row in df.iterrows():
    old_file_jpg = os.path.join(folder_path, f"{row['old_name']}.jpg")
    old_file_png = os.path.join(folder_path, f"{row['old_name']}.png")
    new_file_jpg = os.path.join(folder_path, f"{row['new_name']}.jpg")
    new_file_png = os.path.join(folder_path, f"{row['new_name']}.png")
    
    if os.path.exists(old_file_jpg):
        os.rename(old_file_jpg, new_file_jpg)
        print(f"Renamed: {old_file_jpg} -> {new_file_jpg}")
    elif os.path.exists(old_file_png):
        os.rename(old_file_png, new_file_png)
        print(f"Renamed: {old_file_png} -> {new_file_png}")
    else:
        print(f"File not found: {row['old_name']} (.jpg or .png)")

print("Renaming completed.")

まあわかると思うんだけど、マーカーの部分を自分のフォルダ名に変えてください。名前はなんでもいいけど、まあ迷ったら「rename_files.py」とでもしとけ。

ちなみに変換するCSVの方は以下のような感じで作ってください。

ファイル名:「name_henkan.csv」(なんでもいいけどカンマくぎりで)
内容:1列に1からの数字連番、2列目に変換したい文字列

1apple
2lemon
3melon
4tomato

そしたらIDLEでもターミナルでもVScodeなんでも良いのでPythonファイルを起動します。

すると、10秒くらいして画像の名前がばばばっと切り替わっていきます。

以上終わり。

参考1
拡張子はpngとjpgにしてるけど、増やしたかったら書き足して。

参考2:間違えちまった時は?
愚かな人間よ、csvファイルを逆にして動かせ。さすれば治る。(1列を2列に、2列を1列に)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次