假设我们在 Azure Blob 存储容器(已挂载)中有一个虚拟文件夹结构,如下所示:
someroot
2019
01
05
somefile0
2020
11
01
somefile1
12
02
somefile2
03
somefile3
如您所见,最终级别不再有子文件夹(即没有文件夹和文件的组合,只有文件)。
如何以递归方式将所有完整目录路径(不包括文件路径)作为平面列表?
这是一个返回完整路径(不包括文件路径)的平面列表的解决方案:
def get_all_directory_paths(base_path: str) -> list:
"""Get all full directory paths
Parameters
----------
base_path : str
The starting path to search from
Returns
-------
list
Flat list of directory paths
"""
all_paths: list = []
def get_paths(base_path: str):
dir_paths: list = dbutils.fs.ls(base_path)
subdir_paths_test: list = [p.path for p in dir_paths if p.isDir()]
if len(subdir_paths_test) == 0:
all_paths.append(base_path)
else:
for p in dir_paths:
if p.isDir():
get_paths(p.path)
get_paths(base_path)
return all_paths
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句