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

Python读取Google Cloud Storage存储桶文件遇IOError报错求助

解决Python读取Google Cloud Storage文件时的IOError问题

问题根源

Python内置的open()函数只能访问本地文件系统的文件,它无法识别GCS特有的gs://协议路径——哪怕你确认文件确实存在于GCS存储桶中,直接用open()读取也会抛出"找不到文件或目录"的错误。

解决方案:使用GCS官方Python客户端库

要直接读取GCS中的文件,你需要借助Google官方提供的google-cloud-storage客户端库,以下是具体步骤:

1. 安装依赖包

先通过pip安装客户端库:

pip install google-cloud-storage

2. 修改代码实现GCS文件读取

替换你原来的代码为以下版本,它能正确访问GCS存储桶中的文件:

from google.cloud import storage
import os

# 初始化存储客户端
# 注意:如果在GCP托管环境(如Cloud Function、GCE)运行,会自动获取凭据;本地运行需设置环境变量指定服务账号密钥
client = storage.Client()

# 定义存储桶名称和文件在桶内的路径
bucket_name = "tp-bi-datalake-mft-landing-dev"
file_path_in_bucket = "mdm/OFF-B/test.txt"

# 获取存储桶和文件对象
bucket = client.get_bucket(bucket_name)
blob = bucket.blob(file_path_in_bucket)

# 读取文件内容并按行分割
times = blob.download_as_text().splitlines()

# 打印信息
print(os.getcwd())
print(times)

补充说明

  • 本地运行时的凭据设置:你需要先下载GCS服务账号的密钥文件,然后通过环境变量指定路径:
    export GOOGLE_APPLICATION_CREDENTIALS="/your/path/to/service-account-key.json"
    
  • 若只是临时需求,也可以先用gsutil cp命令把GCS文件下载到本地,再用open()读取,但这种方法不适合处理大文件或需要直接操作云端文件的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:28:02