Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当您知道文件的类型而不知道文件名时,如何从Azure Data Lake下载文件?_Python_Python 3.x_Azure Data Lake_Azure Data Lake Gen2 - Fatal编程技术网

Python 当您知道文件的类型而不知道文件名时,如何从Azure Data Lake下载文件?

Python 当您知道文件的类型而不知道文件名时,如何从Azure Data Lake下载文件?,python,python-3.x,azure-data-lake,azure-data-lake-gen2,Python,Python 3.x,Azure Data Lake,Azure Data Lake Gen2,我可以运行以下命令来下载文件“some/path/known_name.json” 我的问题是:当文件名未知但文件类型已知时,如何从其他路径下载,例如“different/path/xxx.json”您可以列出容器中的blob,然后按blob.name过滤json文件 以下是我的测试容器中的blob: 以下是我的python代码: 导入操作系统,uuid 从azure.storage.blob导入BlobServiceClient、BlobClient、ContainerClient 尝试:

我可以运行以下命令来下载文件“some/path/known_name.json”


我的问题是:当文件名未知但文件类型已知时,如何从其他路径下载,例如“different/path/xxx.json”

您可以列出容器中的blob,然后按
blob.name
过滤json文件

以下是我的测试容器中的blob:

以下是我的python代码:

导入操作系统,uuid
从azure.storage.blob导入BlobServiceClient、BlobClient、ContainerClient
尝试:
#考虑到环境变量。
connect\u str=os.getenv('AZURE\u存储\u连接\u字符串')
#创建BlobServiceClient对象,该对象将用于创建容器客户端
blob\u服务\u客户端=BlobServiceClient.from\u连接\u字符串(connect\u str)
#为容器创建唯一的名称
容器名称=“测试”
#创建容器
container\u client=blob\u service\u client.get\u container\u client(container\u name)
#列出容器中的blob
本地路径=“/数据”
blob\u list=container\u client.list\u blobs()
对于blob_列表中的blob:
如果(.json在blob.name中):
本地文件名=blob.name
blob\u client=blob\u service\u client.get\u blob\u client(container=container\u name,blob=local\u file\u name)
下载\文件\路径=os.path.join(本地\路径,本地\文件\名称)
打印(“\n将blob下载到\n\t”+本地\u路径)
打开(下载文件路径,“wb”)作为下载文件:
下载\u file.write(blob\u client.download\u blob().readall())
打印(“\t”+blob.name)
例外情况除外,例如:
打印('异常:')
印刷品(ex)
当我运行代码时,它将下载
data.json
data2.json

def download_file():
    try:
        file_system_client = FileSystemClient.from_connection_string(...)

        full_file_location = "some/path/known_name.json"
        target_file_client = file_system_client.get_file_client(full_file_location)

        download=target_file_client.download_file()
        downloaded_bytes = download.readall()
        local_file = open('my_file.json','wb')
        local_file.write(downloaded_bytes)
        local_file.close()

    except Exception as e:
        print(e)