【问题标题】:python: How do i download a file from Google drive using apipython:我如何使用 api 从 Google 驱动器下载文件
【发布时间】:2015-02-03 20:51:04
【问题描述】:

我想使用 google drive api 将 google drive 中的文件下载到我的系统。我该如何实现呢?

根据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

我可以找到该文件,但是如何将其本地下载到我的机器上?

【问题讨论】:

标签: python-2.7 google-drive-api


【解决方案1】:

只需将内容变量写入文件而不是返回内容

fo = open("foo.jpg", "wb")
fo.write(content)
fo.close()

【讨论】:

    【解决方案2】:

    我想你应该看看这个:

    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"}'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      相关资源
      最近更新 更多