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

如何使用Python下载SharePoint中文件名含动态dd.mm.yyyy格式日期的文件

解决方案

核心思路

不要直接在URL中使用通配符,SharePoint接口不支持这种调用方式。正确流程是先拉取目标文件夹下的所有文件列表,再通过正则匹配符合日期格式的目标文件,最后生成下载链接即可。

实现步骤

  • 步骤1:调用SharePoint接口拉取目标文件夹下的全部文件名列表
  • 步骤2:用正则匹配文件名中dd.mm.yyyy格式的日期,可额外增加日期合法性校验,避免匹配到无效格式字符串
  • 步骤3:匹配到目标文件后拼接完整URL,调用原有下载逻辑即可

完整代码示例

import re
from datetime import datetime

# 初始化SP对象,原有逻辑不变
sp = da_tran_SP365(
    site_url = xxxxxx,
    client_id = xxxxx,
    client_secret = xxxxx
)

# 1. 获取目标文件夹下的所有文件名
# 注意:此处方法名需和你使用的da_tran_SP365库提供的方法一致,如方法名不同可替换为对应拉取文件列表的方法
file_list = sp.list_files(folder_path='/sites/myfolder')

# 2. 正则匹配符合格式的目标文件
target_file = None
latest_date = None
# 如果实际文件名是下划线连接,把正则里的空格换成_即可
date_pattern = r'^Filename (\d{2}\.\d{2}\.\d{4})\.xlsx$'

for file_name in file_list:
    match_res = re.match(date_pattern, file_name)
    if match_res:
        # 校验日期合法性,避免匹配到32.13.9999这类无效日期
        date_str = match_res.group(1)
        try:
            file_date = datetime.strptime(date_str, '%d.%m.%Y')
            # 如果存在多个符合格式的文件,默认取日期最新的,不需要该逻辑可直接赋值target_file后break
            if not latest_date or file_date > latest_date:
                latest_date = file_date
                target_file = file_name
        except ValueError:
            # 日期格式不合法直接跳过
            continue

if not target_file:
    raise Exception("未找到符合格式的目标文件")

# 3. 拼接URL生成下载路径
download_url = f'https://mysite.sharepoint.com/:x:/r/sites/myfolder/{target_file}'
download_path = sp.create_link(download_url)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:06:05