使用Python下载由Google Apps脚本创建的Google Drive文件

2 投票
3 回答
2992 浏览
提问于 2025-04-18 00:57

我正在做一个谷歌脚本,目的是帮我处理一些事情。我需要创建一个txt文件,并把它下载到我的本地电脑上。我已经弄明白了怎么把文件做成一个blob,并在谷歌云端硬盘上创建文件。

问题是,我不知道怎么删除旧文件并创建新文件,也不知道怎么把文件下载到本地,这样我才能用Python来处理,生成一个好看的报告并打印出来。我看过文档,也查过类似的问题,但就是搞不清楚怎么真正下载文件。

如果能给我一个示例程序就太好了,最好是用一个虚拟文件来下载,这样真的很棒。

我在想,我可以回到我想下载的旧文件,直接编辑它,这样就不需要删除文件,这样文件的ID、元数据和网址都能保持不变。

我能不能用谷歌应用脚本直接下载到我的电脑上?另外,我用的是Linux系统,所以有些事情对我来说稍微复杂一点,但有些事情又很简单。我觉得可能有个应用可以在我的电脑上本地运行,把我的谷歌云端硬盘文件存储在本地,这样我就可以直接从那里获取文件。

最后,如果能提供一个关于本地运行脚本的文档链接,那就太好了。

3 个回答

0

使用

urllib.retrieve(httpaddressofthefile, filenametosaveitto)

或者

import urllib2
response = urllib2.urlopen('http://www.wherever.com/')
html = response.read()
f=open(filename, 'w')
f.write(html)
f.close()
0

好的,你要找的是 pydrive

这是一个专门用来上传和下载谷歌云盘内容的工具。

另外,这里有一个示例请求:

在这里:

#-------------------------------------------------------------------------------
# Author:      Amazingred
# Created:     0017032814
#-------------------------------------------------------------------------------
import urllib, urllib2, os, sys

#The pydrive package download
page='https://pypi.python.org/packages/source/P/PyDrive/PyDrive-1.0.0.tar.gz'
request=urllib.urlretrieve(page, 'pydrive.tar.gz')
if os.path.exists(os.path.join(os.path.dirname(__file__),"pydrive.tar.gz")):
    print "YUP THE FILE EXISTS"
else:
    print "nope"
0

这是如何使用Python从Google Drive下载文件的方法。

# sample
import googleDriveAccess
ci = googleDriveAccess.readClientId(basedir)
ds = googleDriveAccess.second_authorize(basedir, ci, script=True)
id, fileobj = googleDriveAccess.script_download(ds, folder, SCRIPT_ID)

googleDriveAccess的源代码可以在这里找到: https://github.com/HatsuneMiku/googleDriveAccess

Apps Script速成课程:导入/导出Apps Script代码 https://www.youtube.com/watch?v=lEVMu9KE6jk

Google Drive SDK:搜索文件 https://www.youtube.com/watch?v=DOSvQmQK_HA

撰写回答