python图片批量重命名、格式转换、打标签、名字前缀分割

通常拍摄的一组数据集,图片命名会比较长,不方便人眼查看;
可以按照制定规则重命名,比如统一以8位长度的数字命名
在这里插入图片描述

1 图片批量重命名、格式转换

batch_rename.py

import os
import cv2
import shutil

# convert_format # 图片格式转换标志,默认为jpg不转换;如果转换其他格式,这里设为True
def renane(path_in,path_out,convert_format = False):
    file_in = os.listdir(path_in)      #返回文件夹包含的所有文件名
    num_file_in = len(file_in)          #获取文件数目

    for i in range(num_file_in):
    	#重命名并转换格式
        if convert_format: 
            # 方法一:原文件直接改后缀 (快,简单粗暴,图片只改了后缀,并未转换格式,有时可能会出错)
            #new_name = os.rename(path_in+"/"+file_in[i],path_in+"/"+'%08d.' % i + format)
            #方法二:读取图片后,以新的格式重新保存 (慢,稳妥)
            img = cv2.imread(os.path.join(path_in, file_in[i]))
            cv2.imwrite(os.path.join(path_out, '%08d.' % i + format), img) # 统一命名为8位数字格式 ,设置对应的图片后缀名
		
		#件重命名
        else:
            #原文件重命名
            new_name = os.rename(path_in+"/"+file_in[i],path_in+"/"+'%08d.jpg' % i)
            #复制到新路径下,并重命名
            #shutil.copyfile(os.path.join(path_in, file_in[i]), os.path.join(path_out, '%08d.jpg' % i))    

if __name__ == '__main__':
    #待批量重命名的文件夹
    path_in = "D:\Code\image2"    
    path_out = "D:\Code\image3"
    format = "png"     #重命名后的文件名后缀
    renane(path_in,path_out,convert_format = True)

在这里插入图片描述

2 注意事项

1 图片格式换换(换后缀)

方法一:原文件直接改后缀 (快,简单粗暴,图片只改了后缀,并未转换格式,有时可能会出错)

new_name = os.rename(path_in+"/"+file_in[i],path_in&#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 你可以使用Python的os模块和re模块来批量命名图片。 下面是一个示例代码,用于将指定文件夹中的所有JPEG文件命名为以"image_"为前缀的序列号: ``` python import os import re # 指定文件夹路径和文件名前缀 folder_path = "path/to/folder" new_prefix = "image_" # 获取文件夹中所有JPEG文件 files = os.listdir(folder_path) jpeg_files = [f for f in files if re.match(r'.*\.jpg', f, re.IGNORECASE)] # 对每个JPEG文件进行命名 for i, file_name in enumerate(jpeg_files): old_path = os.path.join(folder_path, file_name) new_name = new_prefix + str(i+1) + ".jpg" new_path = os.path.join(folder_path, new_name) os.rename(old_path, new_path) ``` 在这个示例代码中,首先指定了要操作的文件夹路径和新的文件名前缀。然后,使用`os.listdir()`函数获取文件夹中的所有文件,再使用正则表达式过滤出所有JPEG文件。最后,对每个JPEG文件进行命名,新的文件名由指定的前缀加上一个序列号组成。 ### 回答2: Python可以使用os模块的rename函数来实现批量命名图片。 首先,导入os模块: import os 然后,使用os模块的listdir函数列出目标文件夹下的所有文件名: file_list = os.listdir('目标文件夹路径') 接下来,使用for循环遍历文件夹中的每个文件名: for old_name in file_list: 然后,使用os模块的rename函数对每个文件进行命名: new_name = '新文件名' os.rename('目标文件夹路径' + old_name, '目标文件夹路径' + new_name) 最后,你可以根据具体需求,编写一个加上序号、修改文件格式等操作的代码。 示例代码如下: import os def rename_images(): folder_path = '目标文件夹路径' file_list = os.listdir(folder_path) count = 1 for old_name in file_list: file_path = os.path.join(folder_path, old_name) if os.path.isfile(file_path): file_extension = os.path.splitext(old_name)[1] # 获取文件扩展名 new_name = f'new_image_{count}{file_extension}' # 根据需求修改文件名规则 new_file_path = os.path.join(folder_path, new_name) os.rename(file_path, new_file_path) count += 1 print('图片命名完成!') 调用rename_images()函数即可实现批量命名图片,并打印出完成的提示信息。注意在使用代码前,需要将'目标文件夹路径'替换为你实际的文件夹路径。 ### 回答3: 使用Python批量命名图片可以通过以下步骤实现: 1. 导入所需的模块,如os模块和shutil模块。 2. 使用os模块的listdir()函数列出指定目录下的所有文件。 3. 使用循环遍历每个文件名。 4. 使用字符串的split()方法将文件名分割为文件名和文件扩展名。 5. 创建新的文件名。可以使用格式化字符串或字符串拼接的方法。 6. 使用os模块的rename()函数命名文件。 7. 可以在命名过程中添加判断条件,如只命名特定扩展名的文件。 8. 如果需要将文件移动到其他目录,可以使用shutil模块的move()函数。 以下是一个示例代码: ```python import os import shutil # 定义文件夹路径 folder_path = "图片文件夹路径" # 列出文件夹下的所有文件 file_list = os.listdir(folder_path) # 循环遍历文件列表 for file_name in file_list: # 获取文件扩展名 ext = os.path.splitext(file_name)[1] # 可以添加判断条件,如只命名特定扩展名的文件 if ext == '.jpg': # 创建新的文件名 new_name = f"new_{file_name}" # 将文件命名 os.rename(os.path.join(folder_path, file_name), os.path.join(folder_path, new_name)) ``` 以上代码将会将指定目录下所有扩展名为.jpg的文件命名为new_文件名的格式。你可以根据需求进行更改。如果需要将文件移动到其他目录,可以使用shutil模块的move()函数替代os.rename()函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

R-G-B

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值