无法迭代python变量中的blob列表

问题描述 投票:0回答:1

我正在从 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
python azure iteration azure-blob-storage
1个回答
0
投票

名称:d/abc/employee/log1.parquet

要通过迭代 Python 变量中的 blob 列表来获得所需的输出,可以使用以下代码:

代码:

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
的容器中的 blob 列表。然后它会迭代 blob 列表并打印每个文件的名称。如果文件路径包含
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']

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.