我想使用google drive api将google驱动器中的文件下载到我的系统。我该如何实现呢?
根据https://developers.google.com/drive/v2/reference/files/get#examples
给出的示例def print_file(service, file_id):
"""Print a file's metadata.
Args:
service: Drive API service instance.
file_id: ID of the file to print metadata for.
"""
try:
file = service.files().get(fileId=file_id).execute()
print 'Title: %s' % file['title']
print 'MIME type: %s' % file['mimeType']
except errors.HttpError, error:
print 'An error occurred: %s' % error
def download_file(service, drive_file):
"""Download a file's content.
Args:
service: Drive API service instance.
drive_file: Drive File instance.
Returns:
File's content if successful, None otherwise.
"""
download_url = drive_file.get('downloadUrl')
if download_url:
resp, content = service._http.request(download_url)
if resp.status == 200:
print 'Status: %s' % resp
return content
else:
print 'An error occurred: %s' % resp
我能够找到该文件,但是如何将其本地下载到我的机器上?
答案 0 :(得分:2)
只是将内容变量写入文件而不是返回内容
fo = open("foo.jpg", "wb")
fo.write(content)
fo.close()
答案 1 :(得分:1)
我想你应该看看这个:
http://pythonhosted.org/PyDrive/
代码似乎更容易
# Initialize GoogleDriveFile instance with file id.
file6 = drive.CreateFile({'id': file5['id']})
file6.GetContentFile('catlove.png') # Download file as 'catlove.png'.
# Initialize GoogleDriveFile instance with file id.
file7 = drive.CreateFile({'id': file4['id']})
content = file7.GetContentString()
# content: '{"firstname": "Claudio", "lastname": "Afshar"}'
答案 2 :(得分:0)
如果我理解正确,你有下载链接,所以你可以使用它:
import urllib2
response = urllib2.urlopen('http://www.example.com/file.mp3')
html = response.read()
或:
import urllib
testfile = urllib.URLopener()
testfile.retrieve("http://example.com/file.mp3", "file.mp3")
注意,比你告诉你有权访问!
所以它意味着文件必须是公共的,或者你必须使用身份验证来证明谷歌你有权访问该文件!
希望这能帮助你;)