You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求扩展Python文件移动代码:未满足条件时移至ERROR文件夹

扩展Python文件移动脚本:按文件名条件分流文件

问题说明

现有代码仅能将源目录中文件名含"S"的文件移动到目标目录,需要扩展为:文件名含"S"的移至IN文件夹,不符合条件的移至ERROR文件夹。

完整实现代码

import os
import glob
import shutil

source = '/Users/XY/Desktop/OUT'
destination = '/Users/XY/Desktop/IN'
error_dir = '/Users/XY/Desktop/ERROR'

# 确保目标目录和错误目录存在,不存在则自动创建
os.makedirs(destination, exist_ok=True)
os.makedirs(error_dir, exist_ok=True)

# 递归获取源目录下所有文件(过滤掉子目录)
all_files = [f for f in glob.glob(os.path.join(source, '**/*'), recursive=True) if os.path.isfile(f)]
print("待处理文件总数:", len(all_files))

for file_path in all_files:
    file_name = os.path.basename(file_path)
    # 判断文件名是否包含"S",分流到对应目录
    if 'S' in file_name:
        dst_path = os.path.join(destination, file_name)
    else:
        dst_path = os.path.join(error_dir, file_name)
    
    shutil.move(file_path, dst_path)
    print(f"Moved {file_path} -> {dst_path}")

关键改动说明

  • 遍历所有文件:使用glob.glob的**/*递归匹配源目录下所有文件,同时通过os.path.isfile过滤掉子目录,只处理文件
  • 自动创建目录:用os.makedirs(..., exist_ok=True)确保IN和ERROR目录存在,避免因目录不存在报错
  • 条件判断分流:对每个文件名做是否含"S"的判断,分别指向不同的目标路径
  • 日志跟踪:保留移动日志,方便查看每个文件的处理结果

内容的提问来源于stack exchange,提问作者Dominik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 16:10:31