无法在python变量中迭代blobs列表
我正在从 blob_list 中获取输出 'file_list'
blob_list = container_client.list_blobs()
for blob in blob_listL
file_list = f"Name: {blob.name},"
现在当我打印 file_list 时,得到的输出如下。
file_list = [
"Name: a/abc/log1.parquet",
"Name: c/abc/employee/log1.parquet",
"Name: d/abc/employee/log1.parquet",
"Name: g/abc/log1.parquet"
]
之后,我想从某个目录路径中遍历文件列表
files_in_d_employee = []
for file_path in file_list:
if 'd/abc/employee' in file_path:
files_in_d_employee.append(file_path)
print(files_in_d_employee)
我得到的输出如下,
['N']
['N', 'a']
['N', 'a', 'm']
['N', 'a', 'm', 'e']
['N', 'a', 'm', 'e', ':']
['N', 'a', 'm', 'e', ':', 'd']
['N', 'a', 'm', 'e', ':', 'd', '/']
['N', 'a', 'm', 'e', ':', 'd', '/', 'a']
['N', 'a', 'm', 'e', ':', 'd', '/', 'a', 'b']
期望的输出:
Name: d/abc/employee/log1.parquet
1 个回答
1
文件名:d/abc/employee/log1.parquet
如果你想通过一个Python变量里的文件列表来获取想要的结果,可以使用下面的代码:
代码:
from azure.storage.blob import BlobServiceClient
client = BlobServiceClient.from_connection_string("xxxxx")
container_client = client.get_container_client("sample")
blob_list = container_client.list_blobs()
files_in_d_employee = []
for blob in blob_list:
file_path = blob.name
file_list = f"Name: {file_path}"
print(file_list)
if 'd/abc/employee' in file_path:
files_in_d_employee.append(file_path)
print(files_in_d_employee)
上面的代码会从一个叫sample
的容器中获取文件列表。接着,它会逐个查看这些文件,并打印出每个文件的名字。如果文件路径里包含d/abc/employee
,那么它就会把这个文件路径加到一个叫files_in_d_employee
的列表里。最后,它会打印出所有包含d/abc/employee
的文件路径。
输出:
Name: a/abc/05-03-2024.html
Name: c/abc/employee/temp.png
Name: d/abc/employee/mountainview.png
Name: g/abc/bike.png
['d/abc/employee/mountainview.png']