| 123456789101112131415161718192021222324252627282930313233343536373839 |
- import os
- import sys
- import shutil
- while True:
- target_folder_path = input('输入目标文件夹路径:(输入q退出) ')
- if target_folder_path.lower() == 'q':
- sys.exit(0)
- # 获取目标文件夹下的所有子文件夹
- try:
- entries = os.listdir(target_folder_path)
- except FileNotFoundError:
- print(f"目标文件夹路径 {target_folder_path} 不存在, 重新输入文件路径, 或者输入q退出")
- continue
- folders = [entry for entry in entries if os.path.isdir(
- os.path.join(target_folder_path, entry))]
- for folder in folders:
- folder_path = os.path.join(target_folder_path, folder)
- # 获取子文件夹中的所有内容
- sub_entries = os.listdir(folder_path)
- sub_folders = [entry for entry in sub_entries if os.path.isdir(
- os.path.join(folder_path, entry))]
- # 如果子文件夹中只有一个文件夹
- if len(sub_folders) == 1:
- sub_folder_path = os.path.join(folder_path, sub_folders[0])
- # 移动子文件夹中的所有图片文件到上一级目录
- for file in os.listdir(sub_folder_path):
- if file.endswith(('.png', '.webp', 'gif', 'jpg')):
- shutil.move(os.path.join(sub_folder_path, file), folder_path)
- # 删除子文件夹
- shutil.rmtree(sub_folder_path)
- print(f"已处理文件夹: {folder_path}")
- elif not sub_folders: # 如果子文件夹中没有文件夹
- print(f"文件夹 {folder_path} 中没有文件夹,已跳过")
- else:
- print(f"文件夹 {folder_path} 中包含多个文件夹,未进行处理")
|