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

如何使用PyDrive在Python中读取Google Drive内的指定类型文件

使用PyDrive读取Google Drive中不同类型文件的内容

假设你已经完成PyDrive的授权初始化(比如通过LocalWebserverAuth或其他方式),且已获取目标文件的ID,以下是针对不同文件类型的读取方案:

1. 文本类文件(.txt、.py)

这类文件可以直接读取为字符串,或保存到本地后再处理:

from pydrive.drive import GoogleDrive
from pydrive.auth import GoogleAuth

# 初始化授权(根据你的实际授权方式调整)
gauth = GoogleAuth()
gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)

# 替换为你的目标文件ID
target_file_id = "xxxxxxxxx"
file = drive.CreateFile({'id': target_file_id})

# 方式1:直接读取为字符串
file_content = file.GetContentString()
print(file_content)  # 打印文件内容

# 方式2:保存到本地后读取(适合需要本地备份的场景)
file.GetContentFile("local_file.py")  # 保存为本地文件
with open("local_file.py", "r", encoding="utf-8") as f:
    content = f.read()

2. 二进制压缩文件(.nii.gz)

.nii.gz是二进制压缩格式,需要通过字节流或本地文件结合专业库处理:

方案1:保存到本地后用nibabel读取

# 获取目标文件
nii_file_id = "yyyyyyyyy"
nii_file = drive.CreateFile({'id': nii_file_id})

# 保存到本地
nii_file.GetContentFile("local_nii.gz")

# 用nibabel读取文件
import nibabel as nib
img = nib.load("local_nii.gz")
image_data = img.get_fdata()  # 获取图像数据数组

方案2:直接读取字节流(无需本地文件)

from io import BytesIO
import gzip
import nibabel as nib

nii_file = drive.CreateFile({'id': nii_file_id})
# 获取二进制字节流
byte_stream = BytesIO(nii_file.GetContentString(mimetype='application/octet-stream').encode('latin-1'))

# 解压缩并读取
with gzip.GzipFile(fileobj=byte_stream, mode='rb') as gz_file:
    img = nib.load(gz_file)
    image_data = img.get_fdata()

注意事项

  • 确保你的授权账号拥有目标文件的读取权限(文件需共享给授权账号或设为公开可读取)
  • 处理大体积.nii.gz文件时,优先选择保存到本地的方案,避免内存溢出
  • 读取二进制文件时必须指定mimetype='application/octet-stream',否则会出现编码错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:12:31