You need to enable JavaScript to run this app. 如何使用Python shutil模糊匹配文件名并批量移动指定文件?
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python shutil模糊匹配文件名并批量移动指定文件?

模糊匹配批量移动文件实现方案

你可以在原有代码基础上,新增目录遍历、规则匹配的逻辑实现需求,无需改动原有shutil.move的核心调用逻辑。

核心调整点

  • 补充导入os模块,用于目录遍历和兼容不同系统的路径拼接
  • 用字典绑定「匹配字符组合」和「对应目标路径」,后续新增匹配规则仅需修改字典,无需改动主逻辑
  • 遍历源目录下的所有文件,逐个匹配文件名是否包含规则中的字符组合,匹配成功直接移动

修改后的完整代码

import os
import shutil

src = "C:/Users/Startklar/Desktop/Ausgangsordner"
dst = "C:/Users/Startklar/Desktop/Empfangsordner/Sven"
dst2 = "C:/Users/Startklar/Desktop/Empfangsordner/Gerald"

# 匹配规则:key为需要模糊匹配的字符组合,value为对应移动的目标路径
match_rules = {
    "408710": dst,
    "187105": dst2
}

# 遍历源目录下的所有条目
for filename in os.listdir(src):
    # 拼接文件完整路径,跳过子文件夹(仅处理普通文件)
    full_file_path = os.path.join(src, filename)
    if not os.path.isfile(full_file_path):
        continue

    # 匹配规则并执行移动
    for match_str, target_dir in match_rules.items():
        if match_str in filename:
            shutil.move(src=full_file_path, dst=target_dir)
            # 匹配到一条规则即终止,避免重复移动
            break

可选调整说明

  • 如果需要忽略大小写匹配,可将判断条件修改为if match_str.lower() in filename.lower():
  • 如果需要递归遍历源目录下所有子文件夹的文件,可将os.listdir替换为os.walk实现递归遍历
  • 若担心目标路径已有同名文件被覆盖,可在移动前增加同名文件判断逻辑,或先备份再执行移动

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 02:27:02