import os
import shutil
def is_image_file(filename):
"""检查文件是否为图片文件。"""
image_extensions = ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.tiff']
return any(filename.lower().endswith(ext) for ext in image_extensions)
def find_leaf_directories(root_dir):
"""找到所有最内层子目录。"""
leaf_directories = []
for dirpath, dirnames, filenames in os.walk(root_dir):
if not dirnames: # 如果当前目录下没有其他子目录
leaf_directories.append(dirpath)
return leaf_directories
def move_images_to_target(leaf_directories, target_dir):
"""将所有最内层子目录中的图片文件移动到目标目录。"""
for leaf_dir in leaf_directories:
for filename in os.listdir(leaf_dir):
if is_image_file(filename):
source_path = os.path.join(leaf_dir, filename)
target_path = os.path.join(target_dir, filename)
print(f"Moving {source_path} to {target_path}")
shutil.move(source_path, target_path)
def main():
source_dir = input("请输入需要移动的总目录路径: ")
target_dir = input("请输入目标目录路径: ")
if not os.path.exists(target_dir):
os.makedirs(target_dir)
print(f"目标目录 {target_dir} 已创建。")
leaf_directories = find_leaf_directories(source_dir)
move_images_to_target(leaf_directories, target_dir)
print("所有最内层子目录中的图片文件已成功移动到目标目录。")
if __name__ == "__main__":
main()