main.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import os
  2. import sys
  3. import shutil
  4. while True:
  5. target_folder_path = input('输入目标文件夹路径:(输入q退出) ')
  6. if target_folder_path.lower() == 'q':
  7. sys.exit(0)
  8. # 获取目标文件夹下的所有子文件夹
  9. try:
  10. entries = os.listdir(target_folder_path)
  11. except FileNotFoundError:
  12. print(f"目标文件夹路径 {target_folder_path} 不存在, 重新输入文件路径, 或者输入q退出")
  13. continue
  14. folders = [entry for entry in entries if os.path.isdir(
  15. os.path.join(target_folder_path, entry))]
  16. for folder in folders:
  17. folder_path = os.path.join(target_folder_path, folder)
  18. # 获取子文件夹中的所有内容
  19. sub_entries = os.listdir(folder_path)
  20. sub_folders = [entry for entry in sub_entries if os.path.isdir(
  21. os.path.join(folder_path, entry))]
  22. # 如果子文件夹中只有一个文件夹
  23. if len(sub_folders) == 1:
  24. sub_folder_path = os.path.join(folder_path, sub_folders[0])
  25. # 移动子文件夹中的所有图片文件到上一级目录
  26. for file in os.listdir(sub_folder_path):
  27. if file.endswith(('.png', '.webp', 'gif', 'jpg')):
  28. shutil.move(os.path.join(sub_folder_path, file), folder_path)
  29. # 删除子文件夹
  30. shutil.rmtree(sub_folder_path)
  31. print(f"已处理文件夹: {folder_path}")
  32. elif not sub_folders: # 如果子文件夹中没有文件夹
  33. print(f"文件夹 {folder_path} 中没有文件夹,已跳过")
  34. else:
  35. print(f"文件夹 {folder_path} 中包含多个文件夹,未进行处理")