You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python 3.5从Google Cloud Platform下载数据至本地?

Hey there! 我来帮你一步步搞定从GCP Cloud Storage下载数据到本地的操作,毕竟第一次弄肯定会有点懵~

从GCP Cloud Storage下载数据到本地(Python 3.5适配版)

第一步:安装适配Python3.5的GCS库

因为Python3.5已经不再被官方支持,所以得指定兼容的稳定版本:

pip install google-cloud-storage==1.44.0

这个版本是最后适配Python3.5的GCS库版本,亲测能用。

第二步:配置凭证文件

把你拿到的JSON凭证文件放在容易找到的路径,比如本地项目根目录,命名为gcp-credentials.json(名字随便,自己记清楚就行)。

配置凭证有两种方式,推荐第一种:

  • 方式一:设置环境变量(不用改代码)
    根据你的系统在命令行运行对应命令:
    # Mac/Linux终端
    export GOOGLE_APPLICATION_CREDENTIALS="/你的凭证文件绝对路径/gcp-credentials.json"
    
    # Windows CMD
    set GOOGLE_APPLICATION_CREDENTIALS=C:\你的凭证文件绝对路径\gcp-credentials.json
    
    # Windows PowerShell
    $env:GOOGLE_APPLICATION_CREDENTIALS="C:\你的凭证文件绝对路径\gcp-credentials.json"
    
  • 方式二:代码里直接指定凭证路径
    要是不想设置环境变量,就在代码里手动加载:
    from google.cloud import storage
    from google.oauth2 import service_account
    
    credentials = service_account.Credentials.from_service_account_file(
        '/你的凭证文件绝对路径/gcp-credentials.json'
    )
    client = storage.Client(credentials=credentials)
    

第三步:编写下载代码

下面是两种常见场景的完整代码,替换成你的实际信息就能用:

下载单个文件

from google.cloud import storage

# 用环境变量配置凭证的话,直接初始化client就行
client = storage.Client()

# 替换成你的桶名、GCS里的文件路径、本地保存路径
bucket_name = "你的GCS桶名称"
source_blob_name = "GCS里的文件路径/比如data.csv"
destination_file_name = "本地要保存的路径/比如local_data.csv"

# 获取桶和文件对象
bucket = client.bucket(bucket_name)
blob = bucket.blob(source_blob_name)

# 开始下载
blob.download_to_filename(destination_file_name)

print(f"文件 {source_blob_name} 已成功下载到 {destination_file_name}")

下载整个桶的所有文件

如果想把桶里的内容完整下载到本地(保持目录结构),用这段代码:

from google.cloud import storage
import os

client = storage.Client()
bucket_name = "你的GCS桶名称"
local_download_folder = "./gcp-downloads"  # 本地保存的文件夹,不存在会自动创建

# 创建本地文件夹
os.makedirs(local_download_folder, exist_ok=True)

bucket = client.bucket(bucket_name)
# 遍历桶里的所有文件
for blob in bucket.list_blobs():
    # 构造本地保存路径,和GCS里的目录结构一致
    local_file_path = os.path.join(local_download_folder, blob.name)
    # 自动创建文件所在的父目录
    os.makedirs(os.path.dirname(local_file_path), exist_ok=True)
    # 下载文件
    blob.download_to_filename(local_file_path)
    print(f"已下载: {blob.name} -> {local_file_path}")

print("所有文件下载完成!")

几个重要提醒

  • 确保你的JSON凭证对应的服务账号有Storage Object Viewer权限(可以在GCP控制台的IAM页面给账号添加这个权限),不然会提示权限不足。
  • 如果遇到网络中断导致下载失败,可以考虑加重试逻辑,比如安装适配Python3.5的tenacity库:pip install tenacity==6.3.1,然后给下载函数加重试装饰器。
  • 代码里的桶名、文件路径一定要换成你自己的实际信息哦~

内容的提问来源于stack exchange,提问作者Allen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:28:49