首页 > 解决方案 > 如何使用pyspark仅检索s3文件夹路径中的文件名

问题描述

嗨,我有 aws s3 存储桶,其中定义了几个文件夹和子文件夹

我只需要检索它所在文件夹中的文件名。如何去做

s3 bucket name - abc

path - s3://abc/ann/folder1/folder2/folder3/file1

path - s3://abc/ann/folder1/folder2/file2

到目前为止尝试的代码

   s3 = boto3.client(s3)
   lst_obj = s3.list_objects(bucket='abc',prefix='ann/')
   lst_obj["contents"]

我正在进一步循环以获取所有内容

   for file in lst_obj["contents"]:
         do somtheing...

这里 file["Key"] 给了我整个路径,但我只需要文件名

标签: pythonamazon-web-servicesamazon-s3pysparkboto3

解决方案


您可以通过Key/符号上拆分文件并提取最后一个元素来提取名称

for file in lst_obj["contents"]:
       name = file["Key"].split("/")[-1]

推荐阅读