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

使用Boto3 SDK列S3对象时如何直接获取无父文件夹前缀的纯文件名

结论

Boto3 没有提供直接获取 S3 对象纯文件名的原生属性,你必须自行对返回的对象 Key 做字符串处理。

S3 本质是键值对形式的对象存储,不存在传统文件系统的「文件夹」层级概念。你看到的 folder1/folder2/txt.json 这类带斜杠的路径,本质就是 S3 对象的完整 Key 取值,Boto3 从 S3 API 拿到的返回结果里仅包含完整 Key 字段,不会单独拆分存储末尾的文件名部分。

推荐实现方案

不用手动调用 split 方法处理,直接用 Python 标准库的内置方法即可,还能自动适配多斜杠、末尾斜杠等边界场景:

  • 用 os.path.basename 处理:
import boto3
import os

s3 = boto3.client('s3')
response = s3.list_objects_v2(Bucket='替换为你的桶名', Prefix='folder1/folder2/')

if 'Contents' in response:
    for obj in response['Contents']:
        # 直接获取纯文件名
        file_name = os.path.basename(obj['Key'])
  • Python 3.4+ 环境也可以用 pathlib 处理:
from pathlib import Path

file_name = Path(obj['Key']).name

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:45:03