|
在作者“用余生去守护”的基础上做了些许修改,在excel文件中填写原名,并一一对应修改名,无需考虑后缀名。原作者代码见https://www.jb51.net/article/247374.htm
代码ExcelRename.py如下:
-------------------------------------------------分割线start-----------------------------------------------
# -*- coding: utf-8 -*- """ Created on Tue Apr 19 20:32:11 2022 @author: Rena """ #通过excel批量对应文件名并修改 import os import xlwings as wx def listdir(path, list_name): #传入存储的list for file in os.listdir(path): file_path = os.path.join(path,file) #path+filename list_name.append(file_path) #写入列表 def getinfo(ori_name,new_name,name_suffix,excel_file): # 获取原始名称和修改名称 app = wx.App(visible=False, add_book=False) # 获取excel wb = app.books.open(excel_file) #打开excel sheet = wb.sheets[0] nrows = sheet.used_range.last_cell.row #获取最大行数 # 提取原名和现名 for row in range(2,nrows+1): #range取不到最后一位 file_name1 = str(sheet.range((row,1)).value) #原名 file_name2 = str(sheet.range((row,2)).value).split('.')[0] #现名 file_name3 = str(sheet.range((row,1)).value).split('.')[-1] #原名后缀名 ori_name.append(file_name1) new_name.append(file_name2) name_suffix.append(file_name3) wb.close() app.quit() def change_name(file_path,ori_name,new_name,name_suffix,list_name): # 逐个处理照片 for filename in list_name: old_name = os.path.basename(filename) #去掉文件名的后缀 # 查找现名清单并替换原名 for nfile in ori_name: if old_name in nfile: #存在包含关系 nfname = file_path+os.sep+new_name[ori_name.index(nfile)]+"."+name_suffix[ori_name.index(nfile)] os.rename(filename,nfname) break file_path = r'C:\Users\Rena\Desktop\dd' # 更名文件夹位置(需更改) excel_file= r'E:\data\python\text\ExcelRename.xlsx' #excel文件位置(需更改) try: List_files=[] #读取文件夹下的所有文件 listdir(file_path,List_files) #excel_path+name ori_name=[] new_name=[] name_suffix=[] getinfo(ori_name,new_name,name_suffix,excel_file) # 读取原名和现名 change_name(file_path,ori_name,new_name,name_suffix,List_files) # 修改文件名字 print("done") except Exception as e: # 打印异常信息 print(e)
-------------------------------------------------分割线end-----------------------------------------------
需要修改的部分为
file_path = r'C:\Users\Rena\Desktop\dd' # 更名文件夹位置(需更改) excel_file= r'E:\data\python\text\ExcelRename.xlsx' #excel文件位置(需更改)
以及ExcelRename.xlsx文件,其中excel文件中原名列可用如下代码直接获取,现名那些根据自己需要修改即可
-------------------------------------------------分割线start-----------------------------------------------
# -*- coding: utf-8 -*- """ Created on Sun Apr 17 16:37:14 2022 @author: Rena """ import os #需要修改后缀的文件目录 os.chdir(r'C:\Users\Rena\Desktop\dd') #修改当前工作目录 # 列出当前目录下所有的文件 files = os.listdir('./') for fileName in files: print(fileName)
-------------------------------------------------分割线end-----------------------------------------------
最后,祝各位生活愉快
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2023-3-22 20:11
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社