【办公类-05-04】Python批量修改图片文件名(建立数字文件名,改成EXCEL里面的新文件名)《大班下操作材料包》扫描图片修改名字

该文讲述了如何运用Python进行图像文件批量重命名,通过规范编号和统一格式,以便后续结合Excel表格内容,将图片文件名替换为预设的合成名称,实现文件管理的高效自动化。这一方法显著提高了工作效率,尤其适用于大量文件的整理场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最终效果

背景需求

为了完成区级小课题《运用Python设计幼儿学具的需求研究》,我把大班的学习材料包(大班下学期)的每一份纸类学具都扫描了。

需要根据扫描图片上的名字,来重命名JPG的名字

具体思路:

一、规范扫描图片的名称(排序)

1、第一类:扫描时自动生成的号码“如001.JPG、010.jpg

2、第二类,为了让图片按一定顺序排序,自己编的号码(在049.jpg和050.jpg之间加一张049-02的图片。目的是规定图片排序顺序)

二、把目录提取出来

三、EXCLE里写入新的JPG名称

四、预设的合成名称(Python拼接))

01-01 我们的城市-做客-正面)

01-02 我们的城市-做客-反面)

01-03 我们的城市-做客-粘贴纸

正式运行

步骤一:先把001变成01,02顺序(统一两位数)


import os
import time


path =r"D:\2023-03-14 大班下材料包"

fileList=os.listdir(path)

m=1
for file in fileList:
    
  split_str = file.split('.')
  # newname1 = split_str[0]  # _的第0部分=序号 
  # print(newname1)
  newname2= split_str[1]  # _的第0部分=序号 
  print(newname2)
  newname='{}'.format('%02d'%m)+"."+newname2
  oldname_path = os.path.join(path,file)
  # 文件新路径
  newname_path = os.path.join(path,newname)
  # 新旧对调
  os.rename(oldname_path, newname_path)
  m+=1

排序前

排序后:

以上用途:把编号长度统一,便于抽取数字并替换EXCEL里面的内容

步骤二:EXCLE替换文件名

旧名字:01.JPG 02.JPG

新名字:01-01 我们的城市-做客-正面 02-01 我们的城市-逛超市-正面

1秒生成新名字,并且自动按照编号把同类的正面、反面、黏贴面放在一起。

整体代码


import os
import xlrd

import os
import time
dirpath = 'D:/2023-03-14大班下材料包'#存放图片的文件夹
datapath = 'D:/目录.xlsx'#excel表路径

print('--------1、先把文件名变成数字----------')
fileList=os.listdir(dirpath )
m=1
for file in fileList:
    
  split_str = file.split('.')
  # newname1 = split_str[0]  # _的第0部分=序号 
  # print(newname1)
  newname2= split_str[1]  # _的第0部分=序号 
  print(newname2)
  newname='{}'.format('%02d'%m)+"."+newname2
  oldname_path = os.path.join(dirpath,file)
  # 文件新路径
  newname_path = os.path.join(dirpath,newname)
  # 新旧对调
  os.rename(oldname_path, newname_path)
  m+=1
time.sleep(5)


print('--------2、数字名字体寒程EXCEL里面的合成名字----------')
x1 = xlrd.open_workbook(datapath)#读取excel
sheet1 = x1.sheet_by_name("Sheet1")#读取sheet1

idlist = sheet1.col_values(0)#存放第一列
print(idlist)
# ['数字文件名', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34

xylist = sheet1.col_values(9)#存放第二列
print(xylist)
# '合成', '01-01 我们的城市-做客-正面', '02-01 我们的城市-逛超市-正面', '03-01 我们的城市-上海一日游-正面', '04-01 我们的城市-生活中的标志-正面', '05-01 我们的城市-新车出厂-正面', '06-01 春夏和秋
# 冬-小小气象员-正面', '07-01 春夏和秋冬-雨天上学-正面', '08-01 春夏和秋冬-晴雨表-正面', '09-01 春夏和秋冬-春天拼图-正面', '10-01 春夏和秋冬-美丽的树林-正面', '11-01 春夏和秋冬-插花-正面', '12-01 
# 动物大世界-树和喜鹊-正面', '13-01 动物

file_names = os.listdir(dirpath)#获取文件夹下所有图片名称
print(file_names)
# '01.jpg', '02.jpg', '03.jpg', '04.jpg', '05.jpg', '06.jpg', '07.jpg', '08.jpg', '09.jpg', '10.jpg', '11.jpg', '12.jpg', '13.jpg', '14.jpg', '15.jpg', '16.jpg', '17.jpg', '18.jpg', '19.jpg', '20.jpg', '21.jpg', '22.jp

for i in file_names:
    print(i)
    # '01.jpg'
    #  '02.jpg',
    #  '03.jpg'
    
    id = i[0:2]#截取01.jpg前2位

    if id in idlist:
        xy = xylist[idlist.index(id)]
        print(xy)
        os.renames(os.path.join(dirpath, i), os.path.join(dirpath, xy +".jpg"))#重命名

最终效果

感悟:

学会了又一种替换文件名称的方法(名称按照一定要求,变成升序数字排列,然后替换成EXCLE里面对应的自己需要的新名字)。

python替换文件名比人工添加名字快几十倍的时间,关键是可以反复修改调试、修改,(前期一定要把资料备份,供反复修改),满足各种各样的需求,获得工整简洁的样式,提升办公任务的完成效率。

学好python这个办公工具,让解决问题的方法不断更新,更快捷、更有效!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿夏reasonsummer

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

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

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

打赏作者

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

抵扣说明:

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

余额充值