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

如何按匹配模式选取Python执行目录DATA文件夹中的动态命名文件

解决方案:匹配DATA文件夹中唯一动态命名文件并获取完整路径

这问题我之前也碰到过,用Python的文件路径处理工具就能轻松搞定,给你两种常用的实现方式,选适合你的场景就行:

方式一:用Pathlib(Python 3.4+ 推荐)

Pathlib是Python 3.4引入的现代路径处理模块,语法更直观简洁,代码可读性更高:

from pathlib import Path

# 获取脚本执行时的当前工作目录
script_working_dir = Path.cwd()
# 拼接DATA文件夹的路径
data_folder = script_working_dir / "DATA"

# 替换成你的文件匹配模式,比如"report_*.csv"、"*_daily_log.txt"
# 支持通配符:*匹配任意长度字符,?匹配单个字符,[]匹配字符集合
matching_files = list(data_folder.glob("your_file_pattern_here"))

# 题目明确只有一个匹配文件,直接取第一个结果即可
if matching_files:
    # resolve() 转换成绝对完整路径,确保路径准确
    target_full_path = matching_files[0].resolve()
    print(f"成功找到目标文件:{target_full_path}")
else:
    print("未找到符合指定模式的文件,请检查模式或DATA文件夹内容")

关键部分解释:

  • Path.cwd():获取脚本运行时的当前工作目录,也就是你执行脚本的目录。
  • data_folder = script_working_dir / "DATA":用Pathlib的路径拼接语法,比传统的os.path.join更直观。
  • glob():在指定文件夹内匹配符合模式的文件,如果你需要递归查找DATA的子文件夹,换成rglob()即可。

方式二:用os+glob模块(兼容旧版Python)

如果你的项目需要兼容Python 3.4以下版本,可以用传统的os和glob模块组合:

import os
import glob

# 获取脚本执行目录
script_working_dir = os.getcwd()
# 拼接DATA文件夹路径
data_folder = os.path.join(script_working_dir, "DATA")

# 组合成完整的匹配模式
file_pattern = os.path.join(data_folder, "your_file_pattern_here")
# 获取所有匹配的文件
matching_files = glob.glob(file_pattern)

if matching_files:
    # 转换成绝对完整路径
    target_full_path = os.path.abspath(matching_files[0])
    print(f"成功找到目标文件:{target_full_path}")
else:
    print("未找到符合指定模式的文件,请检查模式或DATA文件夹内容")

注意事项:

  • 一定要把代码里的your_file_pattern_here替换成实际的文件命名模式,比如文件是20240523_sales_data.json这种日期前缀的,模式就写*_sales_data.json;如果是config_v2.1.ini这种版本后缀的,模式写config_v*.ini。
  • 虽然题目说明只有一个匹配文件,但代码里还是加了非空判断,避免出现索引越界的错误(比如DATA文件夹里没有符合模式的文件时)。
  • 如果需要查找DATA文件夹下所有子目录里的文件,在glob模块里可以加上recursive=True参数,比如glob.glob(file_pattern, recursive=True)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:29:02