Azure 文件共享 - 递归目录搜索,如 os.walk

问题描述

我正在编写一个 Python 脚本来从 Azure 文件共享下载文件文件共享的结构如下:

/analytics/Part1/file1.txt
/analytics/Part1/file2.txt
/analytics/mainfile.txt
/analytics/Part1/Part1_1/file11.txt

我尝试在脚本中使用以下几行,但它仅在根目录级别查找文件和目录。

fileshareclient = ShareClient(
    account_url=args.get('AccountURL'),credential=args.get('SASKey'),share_name=args.get('FileShare')
)

fileLst = list(
    fileshareclient.list_directories_and_files('analytics')
)

输出为:

/analytics/mainfile.txt  --> File
/analytics/Part1 --> Dir

但是,我正在 Python 中寻找类似 os.walk()函数,以实现这种递归目录遍历。不知道 Azure 文件服务 Python API 是否提供此类功能

解决方法

built-in list_directories_and_files() methodAzure Storage File Share client library for Python azure-storage-file-share 只列出根目录和文件。如果你想要像 productViewControllerDidFinish: 这样的东西,你应该自己编写方法。

这里,我写了一个可以递归列出所有文件/目录的函数,它工作正常(如果它不符合您的需要,请随时修改它):

os.walk()