241015_把一个文件夹中的所有图片按照序列命名(数据集重命名)
在数据集制作过程中,我们经常会遇到合并图片数据集后命名格式不统一或者因重复命名自动添加(1)(2)的问题,以下是一段代码,对合并后的所有文件进行按照序列重命名。
代码中默认为jpg转jpg,如需png转jpg,请修改代码中指定位置
from PIL import Image
import os
def convert_png_to_jpg(source_folder, target_folder):
# 确保目标文件夹存在
if not os.path.exists(target_folder):
os.makedirs(target_folder)
# 初始化计数器
count = 1
# 遍历源文件夹中的所有文件
for filename in os.listdir(source_folder):
# 如需png转jpg,请修改.jpg为.png
if filename.endswith('.jpg'):
# 构建完整的文件路径
file_path = os.path.join(source_folder, filename)
# 打开图像文件
with Image.open(file_path) as img:
# 转换为RGB模式,因为不是所有的PNG都是RGB模式
rgb_img = img.convert('RGB')
# 新的文件名
new_filename = f"{count}.jpg"
new_file_path = os.path.join(target_folder, new_filename)
# 保存为JPG格式
rgb_img.save(new_file_path)
# 增加计数器
count += 1
# 使用示例
source_folder = 'D:\Softwares\Codes\Git\GitProgram\light\data_test\\trainA_512\\trainA_512' # 源文件夹路径
target_folder = 'D:\Softwares\Codes\Git\GitProgram\light\data_test\\train_528p_512_xl' # 目标文件夹路径
convert_png_to_jpg(source_folder, target_folder)
ng_to_jpg(source_folder, target_folder)