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

如何从带斜杠的S3路径字符串中提取year、month、day变量?

从固定模式的S3路径提取日期变量

正则表达式方案

既然路径模式固定,直接用正则匹配year=xxxx、month=xx、day=xx的结构即可,示例代码如下:

import re

s3_path = "s3://bucket/year=2023/month=02/day=22/test.csv"
pattern = r'year=(\d{4})/month=(\d{2})/day=(\d{2})'
match_result = re.search(pattern, s3_path)

if match_result:
    year = match_result.group(1)
    month = match_result.group(2)
    day = match_result.group(3)
    print(f"年份:{year},月份:{month},日期:{day}")

正则里的(\d{4})匹配4位数字的年份,(\d{2})匹配2位的月份和日期,通过分组可直接提取对应值。

字符串分割方案(无需正则)

因为路径结构固定,也可以直接按/分割路径片段,再筛选目标字段:

s3_path = "s3://bucket/year=2023/month=02/day=22/test.csv"
path_parts = s3_path.split('/')

date_vars = {}
for part in path_parts:
    if part.startswith('year='):
        date_vars['year'] = part.split('=')[1]
    elif part.startswith('month='):
        date_vars['month'] = part.split('=')[1]
    elif part.startswith('day='):
        date_vars['day'] = part.split('=')[1]

print(date_vars)  # 输出: {'year': '2023', 'month': '02', 'day': '22'}

关于datetime模块的说明

datetime模块无法直接处理这种路径,因为它需要标准日期格式字符串,而这里的日期分散在key=value的路径片段中。不过提取出year、month、day的值后,就可以用datetime构造日期对象:

from datetime import datetime

date_obj = datetime(int(year), int(month), int(day))
print(date_obj)  # 输出: 2023-02-22 00:00:00

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 20:45:38