【发布时间】:2021-02-22 21:07:21
【问题描述】:
如果我的目录结构如下,前缀是/folder1,
/folder1/folder11/folder12/folder13/*.files
/folder21/folder22/folder23/*.files
/folder31/folder32/*.files
我想动态循环遍历这些目录,以便分别读取每个叶子文件夹中的文件,即我需要一个列表
[
/folder1/folder11/folder12/folder13/,
/folder1/folder21/folder22/folder23/,
/folder1/folder31/folder32/
]
除了递归遍历每个前缀、获取下一级前缀、连接、获取下一级等,还有更好的方法来获取它,直到到达最后一个(叶)文件夹?
【问题讨论】:
-
格式化有点误导,/folder1很常见,其余都是子文件夹:/folder1/folder11/folder12/folder13/*.files; /folder1/folder21/folder22/folder23/*.files; /folder1 /folder31/folder32/*.files
-
循环是你做的方式。或者,可以在开始迭代之前获取 S3 清单以识别感兴趣的前缀。
-
S3 存储是“平面”的,这意味着没有实际的目录结构。所以正如你所说,你最好的选择是为每个前缀做一个 BFS。
标签: python amazon-web-services amazon-s3 boto3 python-s3fs