python - Colab Python : Downloading/Uploading google files without mounting

标签 python pandas google-api google-colaboratory

我在 Colabs 中使用 Python 来访问特定文件及其 ID、分析它们并记录它们的信息。我需要将记录的信息保存在云端硬盘上的团队文件夹中。我不愿意安装,因为团队文件夹位于公司驱动器文件夹的体系结构深处。我不知道如何从主驱动器访问它,我将它放在我的驱动器中以便于访问。我还觉得安装整个驱动器以及其中的所有公司信息很奇怪。我真的希望你可以挂载一个文件夹(我知道你可以在挂载后更改路径,但这也感觉很奇怪)。

我找到了很多根据文件 ID 下载文件的方法,但找不到任何上传到该文件 ID 或保存到该文件 ID 的方法。我知道 Pandas 还有一种方法可以从文件 ID 中读取信息并将其用作数据框,这是一个选项,但是您可以使用 Pandas 将新信息保存到文件 ID 中吗?似乎还有一种方法可以通过 Google API 使用文件 ID 轻松下载,但同样,上传到文件 ID 或文件夹 ID 并覆盖文件也不是一种简单的方法。

随着时间的推移,这些文件将会变得非常大;数万行,因此它需要能够通过仅上传新信息或能够处理长时间下载来处理。

编辑:我刚刚也尝试使用 gspread,但我无法与我们公司域之外的电子邮件共享文件,因此我无法使用 gspread。 ):

最佳答案

可以使用pydrive根据FILE_ID进行读写

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

# Authenticate and create the PyDrive client.
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

fid = 'Your File ID'

# read it
f = drive.CreateFile({'id': fid})  # just open an existing file
f.FetchMetadata(fetch_all=True) 
text = f.GetContentString() # or f.GetContentFile('im.png') to save a local file

# or write it
f.SetContentString('Sample upload file content')  # or SetContentFile('im.png')
f.Upload()

关于python - Colab Python : Downloading/Uploading google files without mounting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64789699/

相关文章:

Python Pandas - 获取第一个符合条件的值

python - 将系列索引设置为另一个具有更多级别的索引

python - 线图不显示轴中的所有日期

c# - NativeApplicationClient 不受任何支持

javascript - 基本 JavaScript 警报未显示

javascript - 如何为 Google 自定义搜索 API json 结果设置 HTML 元素样式?

python - 是否可以测试对象属性是否使用描述符?

python - 使用 ctypes 包装 DLL 函数

python - 如何使用 Python 中的数组输出数据创建表

python - 当 slider 值在 Flask 中发生变化时,如何发送 slider 值的发布请求?