当前位置: 首页 > 知识库问答 >
问题:

从谷歌云存储下载文件

宗政学
2023-03-14

我在尝试从谷歌云存储下载CSV文件时遇到了一个问题。出于某种原因,它一直以字节而不是可读文本的形式下载文件。当我在Excel中打开下载的CSV时,Excel已经足够智能,可以将其转换为可读文本。我在这里错过了什么?我检查了谷歌的文档,但找不到任何好的信息来完成它们。提前谢谢你!

storage_client = storage.Client()
bucket = storage_client.bucket("bucket_name")
blob = bucket.blob("csv_file.csv")
blob = blob.download_as_string()
blob = blob.decode('utf-8')
blob = io.StringIO(blob)  # tranform bytes to string here
print(blob)

这是错误:UnicodeDecodeError:“utf-8”编解码器无法解码位置15-16的字节:无效的连续字节

共有1个答案

潘嘉佑
2023-03-14

您可以使用官方文档中的代码,使用函数blob。下载到文件名()。为什么要使用blob。作为字符串()下载?

下载对象

from google.cloud import storage


def download_blob(bucket_name, source_blob_name, destination_file_name):
    """Downloads a blob from the bucket."""
    # bucket_name = "your-bucket-name"
    # source_blob_name = "storage-object-name"
    # destination_file_name = "local/path/to/file"

    storage_client = storage.Client()

    bucket = storage_client.bucket(bucket_name)

    # Construct a client side representation of a blob.
    # Note `Bucket.blob` differs from `Bucket.get_blob` as it doesn't retrieve
    # any content from Google Cloud Storage. As we don't need additional data,
    # using `Bucket.blob` is preferred here.
    blob = bucket.blob(source_blob_name)
    blob.download_to_filename(destination_file_name)

    print(
        "Blob {} downloaded to {}.".format(
            source_blob_name, destination_file_name
        )
    )


 类似资料:
  • 我是Google Cloud Platform的新手。我已经在datalab上训练了我的模型,并将模型文件夹保存在云存储中。我可以通过右键单击文件将桶中的现有文件下载到本地计算机-

  • 我有一个python脚本,它获取已上传到google云存储桶的文件列表,并尝试以字符串形式检索数据。 代码很简单: 我的问题是,我上传的数据存储在bucket中的文件夹中,因此路径类似于: 当google library试图下载文件时,它会以GET请求的形式获取该文件,该请求将上述路径转换为: 有没有办法阻止这种情况发生/通过这种方式下载文件?干杯

  • 我是一个非营利组织的谷歌办公套件管理员,刚刚发现了数据导出功能,这似乎就像个人账户的外卖。 导出文件已经准备好,现在可以从谷歌云平台存储中的存储桶下载。然而,有很多很多文件夹,试图进出每个文件夹来下载很多很多。每个文件中的zip文件听起来都是一个令人头疼的问题。 我在Mac上使用Transmit,它可以通过与Amazon S3的互操作性连接到谷歌云存储。然而,当我连接时,我什么也看不到(因为我不使

  • 我需要从我的谷歌云存储从我的桶中下载NodeJS文件夹。我读了所有的留档,我只找到了下载文件而不是文件夹的方法。我需要获取/下载文件夹以提供用户的下载文件。 有人能帮我吗?

  • 有没有一种方法可以在不下载模型副本的情况下从谷歌云存储服务模型?比如直接传输数据? 我正在尝试加载一个托管在谷歌云存储上的fasttext模型。每次我运行该程序时,它都需要在桶中获取并下载该模型的副本。

  • 我目前面临的问题与谷歌云存储, 我能够下载对象上传到谷歌云存储,但当天晚些时候,我开始得到的错误,因为"这个网站无法到达" 我在c#中以编程方式创建了一个bucket,代码如下: 因此,创建存储桶的设置如下: 默认存储类别:多地区 位置:美国(美国多个地区) 公共访问:每个对象 生命周期:无 访问控制模型:存储桶策略