无法在python变量中迭代blobs列表

0 投票
1 回答
43 浏览
提问于 2025-04-14 18:15

我正在从 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']

在这里输入图片描述

撰写回答