Скачать файл google drive python

Как мне скачать файл с googledrive?

я использую pydrive используя ссылку.

#https://drive.google.com/open?id=DWADADDSASWADSCDAW
    from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive

gauth = GoogleAuth()
drive = GoogleDrive(gauth)

gdrive_file = drive.CreateFile({'id': 'id=DWADADDSASWADSCDAW'})
gdrive_file.GetContentFile('DWADSDCXZCDWA.zip') # Download content file.

Ошибка:

raceback (most recent call last):
  File "C:\Users\Hoxton\AppData\Local\Continuum\miniconda3\lib\site-packages\oauth2client\clientsecrets.py", line 121, in _loadfile
    with open(filename, 'r') as fp:
FileNotFoundError: [Errno 2] No such file or directory: 'client_secrets.json'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Hoxton\AppData\Local\Continuum\miniconda3\lib\site-packages\pydrive\auth.py", line 386, in LoadClientConfigFile
    client_type, client_info = clientsecrets.loadfile(client_config_file)
  File "C:\Users\Hoxton\AppData\Local\Continuum\miniconda3\lib\site-packages\oauth2client\clientsecrets.py", line 165, in loadfile
    return _loadfile(filename)
  File "C:\Users\Hoxton\AppData\Local\Continuum\miniconda3\lib\site-packages\oauth2client\clientsecrets.py", line 125, in _loadfile
    exc.strerror, exc.errno)
oauth2client.clientsecrets.InvalidClientSecretsError: ('Error opening file', 'client_secrets.json', 'No such file or directory', 2)

During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "C:/Users/Hoxton/123/pyu_test.py", line 8, in <module>
        gdrive_file.GetContentFile('PyUpdater+App-win-1.0.zip') # Download content file.
      File "C:\Users\Hoxton\AppData\Local\Continuum\miniconda3\lib\site-packages\pydrive\files.py", line 210, in GetContentFile
        self.FetchContent(mimetype, remove_bom)
      File "C:\Users\Hoxton\AppData\Local\Continuum\miniconda3\lib\site-packages\pydrive\files.py", line 42, in _decorated
        self.FetchMetadata()
      File "C:\Users\Hoxton\AppData\Local\Continuum\miniconda3\lib\site-packages\pydrive\auth.py", line 57, in _decorated
        self.auth.LocalWebserverAuth()
      File "C:\Users\Hoxton\AppData\Local\Continuum\miniconda3\lib\site-packages\pydrive\auth.py", line 113, in _decorated
        self.GetFlow()
      File "C:\Users\Hoxton\AppData\Local\Continuum\miniconda3\lib\site-packages\pydrive\auth.py", line 443, in GetFlow
        self.LoadClientConfig()
      File "C:\Users\Hoxton\AppData\Local\Continuum\miniconda3\lib\site-packages\pydrive\auth.py", line 366, in LoadClientConfig
        self.LoadClientConfigFile()
      File "C:\Users\Hoxton\AppData\Local\Continuum\miniconda3\lib\site-packages\pydrive\auth.py", line 388, in LoadClientConfigFile
        raise InvalidConfigError('Invalid client secrets file %s' % error)
    pydrive.settings.InvalidConfigError: Invalid client secrets file ('Error opening file', 'client_secrets.json', 'No such file or directory', 2)

    Process finished with exit code 1

3 ответа

Решение

Попробуйте приведенный пример кода в документации.

Drive API позволяет загружать файлы, которые хранятся в Google Drive. Кроме того, вы можете загружать экспортированные версии Документов Google (Документы, Электронные таблицы, Презентации и т. Д.) В форматах, которые может обрабатывать ваше приложение. Drive также поддерживает предоставление пользователям прямого доступа к файлу через URL в webViewLink имущество.

Вот фрагмент кода:

file_id = '0BwwA4oUTeiV1UVNwOHItT0xfa2M'
request = drive_service.files().get_media(fileId=file_id)
fh = io.BytesIO()
downloader = MediaIoBaseDownload(fh, request)
done = False
while done is False:
    status, done = downloader.next_chunk()
    print "Download %d%%." % int(status.progress() * 100)

Это работает для меня:

      from google_drive_downloader import GoogleDriveDownloader as gdd

gdd.download_file_from_google_drive(file_id='1z8e2CnvrX8ZSu2kk0QgiFWurOKMr0', dest_path='E:/model.h5')

Источник: https://newbedev.com/python-download-files-from-google-drive-using-url .

Привет, я знаю, что уже поздно отвечать, но это может быть кому-то полезно.

У меня была аналогичная проблема с G-листами, проблема здесь в том, что для загрузки файла может быть несколько форматов, и вы не указываете, какой из них вам нужен. Для этого вам нужно добавить параметр mimetype в метод GetContentFile. . Вот так:

      gdrive_file.GetContentFile('DWADSDCXZCDWA.zip', mimetype = 'application/zip')

Обратите внимание, что существует несколько типов mimetyp для zip-файлов, и что тип и расширение mimetype должны быть согласованы. Поэтому вам нужно знать, какой из них использовать, или просто попробовать другие, если вы этого не сделаете. Вот удобный список:

  • приложение / x-сжатое
  • application / x-zip-сжатый
  • приложение / zip
  • multipart / x-zip

Кроме того, если вы действительно получаете доступ к метаданным файла, вы можете просмотреть все типы форматов, в которые вы можете экспортировать его, в разделе «exportLinks». Будет диктовка с миметиками и связанными ссылками.

Другие вопросы по тегам