main.py 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import os
  2. """@@@@@设置路径@@@@@"""
  3. # 设置根文件夹路径,将这里的路径更改为您要操作的根文件夹路径
  4. root_folder = "/Users/admin/Downloads/2022年度领导班子总结和干部个人述职报告的(首批人名)"
  5. # 打开新旧文件名对应的文本文件
  6. """@@@@@设置新旧对比文件名@@@@@"""
  7. with open("list.txt", "r", encoding="utf-8") as file:
  8. rename_dict = {}
  9. # 逐行读取文件,解析旧文件名和新文件名的对应关系,保存到字典中
  10. for line in file:
  11. """ @@@@@ 设置分隔符 @@@@@ """
  12. old_name, new_name = line.strip().split(" ") # 分离每行的旧文件名和新文件名
  13. rename_dict[old_name] = new_name # 将旧文件名作为键,新文件名作为值,保存到字典中
  14. # 递归遍历文件夹
  15. for root, dirs, files in os.walk(root_folder):
  16. for filename in files:
  17. old_file_path = os.path.join(root, filename) # 构建旧文件的完整路径
  18. if filename in rename_dict: # 检查当前文件名是否有对应的新文件名
  19. new_filename = rename_dict[filename] # 获取新文件名
  20. new_file_path = os.path.join(root, new_filename) # 构建新文件的完整路径
  21. try:
  22. os.rename(old_file_path, new_file_path) # 使用 os.rename() 函数将旧文件名替换为新文件名
  23. print(f"Renamed '{filename}' to '{new_filename}'")
  24. log1 = open("log.txt", "a", encoding="utf-8")
  25. log1.write(f"{filename},{new_filename},成功\n")
  26. except FileExistsError as err:
  27. count = 1
  28. base, ext, = os.path.splitext(new_filename)
  29. while True:
  30. new_filename = f"{base} ({count}){ext}"
  31. new_file_path = os.path.join(root, new_filename)
  32. try:
  33. os.rename(old_file_path, new_file_path)
  34. print(f"Renamed '{filename}' to '{new_filename}'{err}")
  35. log2 = open("log.txt", "a", encoding="utf-8")
  36. log2.write(f"{filename},{new_filename},{err}序号增加成功\n")
  37. break
  38. except FileExistsError as eerr:
  39. count += 1
  40. print(f"Skipped '{filename}' because '{new_filename}' already exists.")
  41. log3 = open("log.txt", "a", encoding="utf-8")
  42. log3.write(f"{filename},{new_filename},错误:{eerr}\n")
  43. print("Renaming completed.")