使用mssparkutils.fs.ls列目录时,如何仅获取文件名而非完整路径?
提取ADLS目录中的纯文件名列表
mssparkutils.fs.ls()返回的是包含FileInfo对象的列表,每个对象的name属性存储的是文件的完整路径。要只获取文件名,可以通过以下两种方式处理:
方法1:使用os.path.basename提取文件名
from os.path import basename historical_logs_adls_path = ( f"abfss://{staging_container_name}@{staging_account_name}.dfs.core.windows.net/" f"{staging_dirname}" ) # 获取目录下的FileInfo对象列表 file_info_list = mssparkutils.fs.ls(historical_logs_adls_path) # 提取每个文件的纯文件名 file_names = [basename(file.name) for file in file_info_list] # 输出文件名列表 print(file_names)
方法2:直接分割路径字符串
如果不想导入额外模块,可以通过分割路径的方式获取最后一段作为文件名:
historical_logs_adls_path = ( f"abfss://{staging_container_name}@{staging_account_name}.dfs.core.windows.net/" f"{staging_dirname}" ) file_info_list = mssparkutils.fs.ls(historical_logs_adls_path) # 按斜杠分割路径,取最后一个元素 file_names = [file.name.split('/')[-1] for file in file_info_list] print(file_names)
两种方法都能过滤掉完整路径,只保留文件名部分。
内容的提问来源于stack exchange,提问作者Lopa
相关产品推荐
相关产品推荐

