import os import openpyxl from openpyxl.utils.exceptions import InvalidFileException def rename_images(base_dir, excel_path): # 检查基础路径是否存在 if not os.path.exists(base_dir): print(f"错误:提供的总地址不存在 - {base_dir}") return # 检查Excel文件是否存在 if not os.path.exists(excel_path): print(f"错误:提供的Excel表格地址不存在 - {excel_path}") return # 尝试加载Excel表格 try: workbook = openpyxl.load_workbook(excel_path) except InvalidFileException: print(f"错误:无法打开或识别Excel文件 - {excel_path}") return sheet = workbook.active # 创建一个字典来存储Excel表格中的文件夹名称和对应的新名称 name_mapping = {} for row in sheet.iter_rows(min_row=2, values_only=True): folder_name, new_name = row[:2] name_mapping[folder_name] = new_name # 遍历总地址下的所有文件夹 for folder_name in os.listdir(base_dir): folder_path = os.path.join(base_dir, folder_name) # 检查当前路径是否为文件夹 if os.path.isdir(folder_path): # 查找文件夹名称在Excel表格中的对应项 if folder_name in name_mapping: new_name_base = name_mapping[folder_name] count = 1 # 重命名文件夹内的所有图片 for filename in os.listdir(folder_path): old_file_path = os.path.join(folder_path, filename) if os.path.isfile(old_file_path) and any( filename.lower().endswith(ext) for ext in ['.png', '.jpg', '.jpeg', '.gif']): # 保持文件原始扩展名 file_extension = os.path.splitext(filename)[1] new_file_name = f"{new_name_base}({count}){file_extension}" new_file_path = os.path.join(folder_path, new_file_name) try: os.rename(old_file_path, new_file_path) count += 1 except OSError as e: print(f"错误:无法重命名文件 {old_file_path} - {e}") else: # 如果文件夹名称在Excel表格中没有找到,添加"(未命名)"标记 try: os.rename(folder_path, folder_path + "(未命名)") except OSError as e: print(f"错误:无法重命名文件夹 {folder_path} - {e}") # 用户输入 base_dir = input("请输入总地址: ") excel_path = input("请输入Excel表格地址: ") rename_images(base_dir, excel_path)
标签:name,os,第二列,文件夹,file,path,folder,base,打标 From: https://www.cnblogs.com/zly324/p/17999958