skip to content
barorin&?

Pythonでwebpをjpgに変換する方法

/ 1 min read

はじめに

Pythonでwebpをjpgに変換する方法です。

方法

事前準備(pillow のインストール)

$ pip install pillow

スクリプト

import glob
import os
import shutil

from PIL import Image

# 移動先フォルダに同名のファイルがあるかをチェックして、あればリネームする
# jpgを別のフォルダに移動しないなら不要
def duplicate\_rename(file_name_w_ext, target_path):
    file_path = target_path + '/' + file_name_w_ext
    if os.path.isfile(file_path):
        file_name, ext = os.path.splitext(file_name_w_ext)
        i = 1
        while True:
            new_file_name_w_ext = f'{file\_name}({i}){ext}'
            new_file_path = target_path + '/' + new_file_name_w_ext
            if not os.path.isfile(new_file_path):
                return new_file_name_w_ext
            i += 1
    else:
        return file_name_w_ext

# 作業ディレクトリの設定
os.chdir('hoge/fuga')

# ファイル移動先
target_path = 'hoge/jpg'

# コンバート
for file_path in glob.glob('\*.webp'):
    file_name_wo_ext = os.path.splitext(
        os.path.basename(file_path))[0]  # 拡張子なしのファイル名
    file_name_w_jpg = file_name_wo_ext + '.jpg'

    print(f'convert: {os.path.basename(file\_path)}')

    # 重複チェック
    file_name_w_jpg = duplicate_rename(file_name_w_jpg, target_path)

    # jpgへ変換
    jpg = Image.open(file_path).convert('RGB')
    jpg.save(file_name_w_jpg, 'jpeg')

    # jpgは移動先フォルダへ
    shutil.move(file_name_w_jpg, target_path)

    # webpは削除
    os.remove(file_path)

print('done')