見出し画像

フォルダ内の画像タイトルを一括変更

フォルダ内の画像タイトルを一括で操作する方法。
今回は以下の3つの変更を行う。

① すでについている名前のに、新しい名前を追加する
② すでについている名前のに、新しい名前を追加する
③ すでについている名前の一部を別の文字に置き換える

使用するライブラリ

import glob
import os

作業を始める前に、作業するフォルダと内容に間違いがないかprintで確認

#内容の確認
print(glob.glob('./images/*'))

#今回はカレントディレクトリ内にあるimagesというフォルダに入っている画像を処理するのでパスは'./images/*'

ディレクトリについて(参考URL)
https://26gram.com/directory-meaning

① すでについている名前のに、新しい名前を追加する

e.g.
**before
Argos.jpg
Beautiful woman.jpg
Christmas Pearl.jpg

**after
Tulip Argos.jpg
Tulip Beautiful woman.jpg
Tulip Christmas Pearl.jpg

#すでについている名前の前に文字を追加

#品目の入力
path = "./images"
files = glob.glob(path + '/*')

for f in files:
   #Tulipの部分に追加したい文字を入力する 
   os.rename(f, os.path.join(path, 'Tulip ' + os.path.basename(f)))
  

② すでについている名前のに、新しい名前を追加する

e.g.
**before
Argos.jpg
Beautiful woman.jpg
Christmas Pearl.jpg

**after
Argos_Tulip.jpg
Beautiful woman_Tulip.jpg
Christmas Pearl_Tulip.jpg

#すでについている名前の後に文字を追加
path = "./images"
files = glob.glob(path + '/*')

for f in files:
   ftitle, fext = os.path.splitext(f)
   #_Tulipの部分に追加したい文字を入力する 
   os.rename(f, ftitle + '_Tulip' + fext)

③ すでについている名前の一部を別の文字に置き換える

**before
Tulip Argos.jpg
Tulip Beautiful woman.jpg
Tulip Christmas Pearl.jpg

**after
Flower Argos.jpg
Flower Beautiful woman.jpg
Flower Christmas Pearl.jpg

 #文字列の置き換え path = "./images"
files = glob.glob(path + '/*')

#ファイル名に含まれる変更したい単語と変更後の単語
before_word = "Tulip"
after_word = "Flower"

#before_wordの単語をafter_wordに変更
for before_file_name in files:
   after_file_name = before_file_name.replace(before_word,after_word)
   os.rename(before_file_name,after_file_name)




この記事が気に入ったらサポートをしてみませんか?