Python 3.x 在Databricks(DBFS)中递归列出目录和子目录的文件
使用python/dbutils,如何在Databricks文件系统(DBFS)中递归显示当前目录和子目录的文件。dbutils.fs.ls(和%fs magic命令)令人惊讶的是,它似乎不支持任何递归切换。但是,由于ls函数返回一个FileInfo对象列表,因此递归地迭代这些对象以获取整个内容非常简单,例如:Python 3.x 在Databricks(DBFS)中递归列出目录和子目录的文件,python-3.x,azure,databricks,azure-databricks,Python 3.x,Azure,Databricks,Azure Databricks,使用python/dbutils,如何在Databricks文件系统(DBFS)中递归显示当前目录和子目录的文件。dbutils.fs.ls(和%fs magic命令)令人惊讶的是,它似乎不支持任何递归切换。但是,由于ls函数返回一个FileInfo对象列表,因此递归地迭代这些对象以获取整个内容非常简单,例如: def get_dir_内容(ls_路径): dir\u path=dbutils.fs.ls(ls\u path) subdir_path=[如果p.isDir()和p.path!=l
def get_dir_内容(ls_路径):
dir\u path=dbutils.fs.ls(ls\u path)
subdir_path=[如果p.isDir()和p.path!=ls_path,则获取dir_路径中p的内容(p.path)]
平面细分路径=[p表示细分中的细分路径,p表示细分中的细分路径]
返回列表(映射(lambda p:p.path,dir_路径))+flat_subdir_路径
路径=获取目录内容('/databricks数据集/COVID/CORD-19/2020-03-13')
[路径中p的打印(p)]
可以使用生成器和生成
操作符执行替代实现。对于yield from
操作符,您必须至少使用Python 3.3+
,并查看以下内容以更好地理解yield
操作符:
def get_dir_内容(ls_路径):
对于dbutils.fs.ls(ls\u路径)中的dir\u路径:
if dir_path.isFile():
屈服方向路径
elif dir_path.isDir()和ls_path!=dir_path.path:
从get\u dir\u内容(dir\u path.path)获得的收益
列表(获取目录内容('/databricks-datasets/COVID/CORD-19/2020-03-13'))
使用路径类似于/dbfs/mnt/my/mount/…
(而不是dbfs:/mnt/my/mount/…
——注意前缀)