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

如何用Python通过文件名部分匹配实现文件移动?

解决方案:用通配符匹配动态文件名实现自动移动

Python的shutil.move本身不支持通配符,但可以搭配glob模块实现这个需求——glob专门用来处理文件路径的模式匹配,能帮你找到符合filename_*这类格式的文件。

基础实现(固定目标文件名)

下面是适配你需求的修改后代码,每天只会匹配到一个带日期后缀的文件,然后移动并重命名为固定名称:

import shutil
import glob

# 定义带通配符的源路径模式
source_pattern = "/Users/Me/LocationA/filename_*.txt"
# 获取所有匹配的文件列表
matched_files = glob.glob(source_pattern)

# 处理匹配结果
if matched_files:
    # 取第一个匹配到的文件(每日仅生成一个的情况下)
    source_file = matched_files[0]
    # 目标路径(固定文件名)
    destination = "/Users/Me/LocationB/nameofmyfile.txt"
    # 执行移动操作
    shutil.move(source_file, destination)
else:
    print("未找到符合条件的文件")

可选:保留原文件名移动

如果希望保留原有的日期后缀文件名,只是把文件移动到目标目录,可以这样写:

import os
import shutil
import glob

source_pattern = "/Users/Me/LocationA/filename_*.txt"
matched_files = glob.glob(source_pattern)
# 目标目录路径
destination_dir = "/Users/Me/LocationB/"

if matched_files:
    for source_file in matched_files:
        # 提取原文件名
        filename = os.path.basename(source_file)
        # 拼接目标文件的完整路径
        destination = os.path.join(destination_dir, filename)
        shutil.move(source_file, destination)
else:
    print("未找到符合条件的文件")

关键说明

  • glob.glob()会返回所有匹配指定模式的文件路径列表,*是通配符,代表任意长度的任意字符。
  • 如果你的环境偶尔会生成多个符合模式的文件,建议在代码里加判断(比如检查列表长度),避免误操作。
  • 配合cron调度时,确保Python脚本有足够的权限访问源目录和目标目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 05:07:10