如何用Python的webptools库实现批量webp到png的格式转换
Python批量webp转png代码修复方案
现有代码的问题
- 第一个循环错误将列表
webp_list直接赋值为单个文件名字符串,最终webp_list仅会保留最后一个webp文件的名称,无法存储所有待转换文件 - 转换输出的文件名固定写死为
x.png,每次转换都会覆盖上一次的转换结果 - 第二个循环的变量使用逻辑错误,遍历变量未被实际使用,传入转换方法的始终是整个
webp_list对象
修正后可直接运行的代码
from webptools import dwebp import os, glob os.chdir("./images") # 工作目录定位到存放webp文件的images文件夹 # 直接获取当前目录下所有webp格式文件的列表 webp_list = glob.glob("*.webp") for webp_file in webp_list: # 拆分原文件的名称和后缀,保留原文件名仅替换后缀为png raw_file_name = os.path.splitext(webp_file)[0] output_png_name = f"{raw_file_name}.png" # 执行单文件转换 print(dwebp(input_image=webp_file, output_image=output_png_name, option="-o", logging="-v"))
核心修改说明
- 直接使用
glob.glob("*.webp")的返回值作为待转换文件列表,省略冗余的循环赋值逻辑 - 调用
os.path.splitext()方法拆分原文件的名称与后缀,保留原文件名的前提下替换后缀为png,避免输出文件重名覆盖 - 循环中每次传入当前遍历到的单个webp文件路径,对应生成独立的png文件,符合dwebp单输入单输出的调用要求
内容的提问来源于stack exchange,提问作者Kelvin Kho
相关产品推荐
相关产品推荐

