画像フォーマットの管理や変換作業は、特に大量のファイルを扱う際に手間がかかることがあります。この記事では、Pythonを使ってWEBP形式の画像をPNG形式に変換し、整理する方法を紹介します。さらに、ファイル名に日付と連番を自動的に付与し、オリジナルファイルを保管ディレクトリに移動するスクリプトを作成します。このスクリプトを活用することで、作業効率を大幅に向上させることができます。
てくもじ
C:\Users\xxxxxxxx\DownloadsにあるWEBP画像をPNGに変換し、
元のファイルはC:\保管(なければ作る)に移動
新しいPNGファイルはファイル名を2024-10-18-0001 (年月日+通し番号)とし、C:\Users\xxxxxxxx\OneDrive\画像 に保存するPythonコード
(同一ファイル名があれば次の番号をとる)
import os
from PIL import Image
import shutil
from datetime import datetime
# 入力ディレクトリと出力ディレクトリの設定
input_dir = r'C:\Users\xxxxxxxx\Downloads'
output_dir = r'C:\Users\xxxxxxxx\OneDrive\画像'
backup_dir = r'C:\保管'
# 保管ディレクトリが存在しない場合は作成
if not os.path.exists(backup_dir):
os.makedirs(backup_dir)
# 現在の日付を取得
date_str = datetime.now().strftime('%Y-%m-%d')
# 連番生成関数
def get_next_filename(base_name, directory, extension):
counter = 1
while True:
filename = f"{base_name}-{str(counter).zfill(4)}.{extension}"
if not os.path.exists(os.path.join(directory, filename)):
return filename
counter += 1
# ファイル変換と移動処理
for file_name in os.listdir(input_dir):
if file_name.lower().endswith('.webp'):
# WEBPファイルのパス
webp_path = os.path.join(input_dir, file_name)
# PNGファイルの保存名
new_filename = get_next_filename(date_str, output_dir, 'png')
png_path = os.path.join(output_dir, new_filename)
# 画像をWEBPからPNGに変換して保存
with Image.open(webp_path) as img:
img.save(png_path, 'PNG')
# 元のWEBPファイルを保管ディレクトリに移動
shutil.move(webp_path, os.path.join(backup_dir, file_name))
print("WEBP画像をPNGに変換し、ファイルの移動が完了しました。")
説明
- PILライブラリの使用:
Pillow
ライブラリを使用して、WEBP画像をPNG形式に変換します。もしPillowがインストールされていない場合は、以下のコマンドでインストールできます。コードをコピーするpip install pillow
- ディレクトリの設定:
input_dir
はWEBP画像があるフォルダです。output_dir
はPNGファイルが保存されるフォルダです。backup_dir
は元のWEBPファイルが移動されるフォルダです。
- 保管フォルダの作成:
os.makedirs()
で、C:\保管
フォルダが存在しない場合に自動で作成します。
- 連番の生成:
get_next_filename()
関数は、同じファイル名が存在する場合に連番を増やしてファイル名を作成します。
- ファイル処理:
- 指定されたフォルダ内のすべてのWEBPファイルを変換し、PNGファイルは連番付きで保存、元のWEBPファイルは保管フォルダに移動されます。
これで指定通りにファイルを変換し、移動が行われます。