背景
需要大量图片作为测试数据,使用公司员工照需要进行脱敏处理,批量修改图片名称,使其每个图片以数字为名并输出至新文件夹
思路
1、定义源文件路径,里面有批量待修改的文件
2、def() 方法定义函数,传参源路径和目标路径
3、os.listdir() 返回文件夹中包含的文件或文件夹的名字的列表
4、for循环遍历文件,若以. 结束则表示是图片
5、依次修改图片名称为数字
6、os.path.join() 连接文件夹路径和图片名称
7、shutil.copy() 复制文件内容从源路径到目标路径
代码
import os
# shutil是高级的文件、文件夹、压缩包处理模块
import shutil
# 定义源文件路径
source_dir = "D:\\pic"
# 定义rename_pic函数,传参:源路径和目标路径
def rename_pic(dir_s, dir_t):
# os.listdir() 返回dir_s包含的文件或文件夹的名字的列表
pic_list = os.listdir(dir_s)
i = 1
# 遍历文件夹每一个文件的名字
for pic in pic_list:
# 若文件名中包含. 表示此文件为图片
if "." in pic:
print("pic:", pic)
# 命名图片名字为数字 str(i)把数值型强转为字符型
t_name = str(i) + ".jpg"
# 连接文件夹路径dir_s和图片名称pic
abs_pic_source_path = os.path.join(dir_s, pic)
abs_pic_path = os.path.join(dir_t, t_name)
# 复制文件内容从源路径到目标路径
shutil.copy(abs_pic_source_path, abs_pic_path)
i += 1
if __name__=='__main__':
rename_pic(source_dir, "D:\\pic\\new")