Python中Blob列表迭代异常:无法正确筛选指定目录文件
筛选Blob存储特定目录文件的代码修正
问题场景
从Blob存储的container_client.list_blobs()获取文件列表后,尝试筛选包含d/abc/employee路径的文件,但执行代码后出现逐字符输出的错误,期望得到完整的目标文件路径。
错误原因
- 文件列表构建错误:原代码循环中直接用
file_list = f"Name: {blob.name},"赋值,每次循环都会覆盖变量,最终file_list是单个字符串而非列表。 - 遍历对象错误:后续遍历
file_list时,实际是遍历字符串的每个字符,导致每次将单个字符添加到结果列表并打印。
修正后的代码
步骤1:正确构建文件列表
blob_list = container_client.list_blobs() file_list = [] # 初始化空列表 for blob in blob_list: file_list.append(f"Name: {blob.name}") # 将每个文件路径添加到列表
步骤2:筛选特定目录的文件
files_in_d_employee = [] for file_path in file_list: if 'd/abc/employee' in file_path: files_in_d_employee.append(file_path) # 打印筛选结果 for item in files_in_d_employee: print(item)
执行结果
运行修正后的代码,将输出:
Name: d/abc/employee/log1.parquet
内容的提问来源于stack exchange,提问作者sahil malik
相关产品推荐
相关产品推荐

