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

Python中如何用通配符查找匹配目录文件并复制到目标文件夹

解决方案

shutil 本身不支持通配符路径解析,你需要先通过通配符匹配出所有符合规则的文件绝对路径,再逐个执行复制操作,使用Python内置的glob模块即可实现通配符匹配需求。

修改后代码示例

import glob
import shutil
import os

TargetFolder = r'C:\ELK\LOGS\ATH\DEST'
# 确保目标文件夹存在,不存在则自动创建
os.makedirs(TargetFolder, exist_ok=True)

for row in df.itertuples():
    search_pattern = row.Search2
    # 匹配所有符合通配符规则的文件,返回匹配成功的路径列表
    matched_files = glob.glob(search_pattern)
    for file_path in matched_files:
        try:
            shutil.copy2(file_path, TargetFolder)
        except Exception as e:
            print(f"复制文件{file_path}失败:{e}")

补充说明

  • 如果需要在指定目录及其子目录下递归匹配符合规则的文件,可将glob.glob(search_pattern)替换为glob.glob(search_pattern, recursive=True),注意此时通配符规则需要包含**匹配多级目录,例如r'C:\folder1\**\A_1*_Z.txt'
  • 若你使用Python 3.4+,也可以用pathlib模块实现匹配,写法更简洁:
    from pathlib import Path
    
    for row in df.itertuples():
        search_pattern = row.Search2
        pattern_path = Path(search_pattern)
        parent_dir = pattern_path.parent
        pattern = pattern_path.name
        # 匹配对应规则的文件
        for file_path in parent_dir.glob(pattern):
            shutil.copy2(file_path, TargetFolder)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 13:24:02