如何用Python移动含GOOD的图片并复制含BAD的图片?
Python实现含关键词图片的移动与复制
核心思路
抛弃startswith(),直接用in运算符判断文件名中是否包含目标关键词("GOOD"或"BAD"),结合shutil模块完成文件移动和复制操作,适配关键词在文件名任意位置的场景。
完整代码示例
import os import shutil # 替换为你的实际路径 source_dir = "/path/to/source/images" good_target_dir = "/path/to/good/images" bad_target_dir = "/path/to/bad/images" # 自动创建目标文件夹(不存在则生成) os.makedirs(good_target_dir, exist_ok=True) os.makedirs(bad_target_dir, exist_ok=True) # 遍历源文件夹内的所有条目 for filename in os.listdir(source_dir): full_path = os.path.join(source_dir, filename) # 只处理文件,跳过子文件夹 if not os.path.isfile(full_path): continue # 根据关键词执行对应操作 if "GOOD" in filename: shutil.move(full_path, os.path.join(good_target_dir, filename)) print(f"已移动:{filename}") elif "BAD" in filename: shutil.copy2(full_path, os.path.join(bad_target_dir, filename)) print(f"已复制:{filename}")
代码说明
os.makedirs(..., exist_ok=True):确保目标文件夹存在,避免因文件夹未创建报错"GOOD" in filename:直接检测关键词是否存在于文件名中,不受关键词位置限制shutil.move():将文件移动到目标文件夹,原文件会从源目录删除shutil.copy2():复制文件同时保留原文件的元数据(如创建时间、修改时间)os.path.isfile():过滤掉源文件夹中的子目录,只处理图片文件
注意事项
- 务必替换代码中的路径为你的实际文件夹路径
- 若目标文件夹存在同名文件,默认会直接覆盖;如需避免覆盖,可在操作前用
os.path.exists()判断目标路径,再做重命名处理 - 确保Python进程对源文件夹和目标文件夹有读写权限
内容的提问来源于stack exchange,提问作者Jannly
相关产品推荐
相关产品推荐

