[PYTHON] Utilisez pydrive2 lorsque vous déposez quelques Go de fichiers tels que des données AI de Google Drive. + Configuration immédiate de pydrive2

Il y avait quelques Go de fichiers liés à l'IA (BERT). Je souhaite télécharger ce qui a été appris par colab et enregistré dans Google Drive localement ou sur un serveur de Google Drive. J'ai essayé d'utiliser «pydrive», mais c'était de la mousse.

Conclusion

Utilisez «pydrive2» au lieu de «pydrive». Vous pouvez télécharger d'énormes fichiers

Contenu

Le fichier de téléchargement est trop gros et mousse sur pydrive. Vous pouvez aller avec pydrive2 Il semble que la méthode utilisée en interne ait changé J'ai été informé sur github que je pouvais utiliser pydrive2 pour isssue. Le téléchargement à partir de Google Drive est un programme jetable, vous pouvez donc accéder régulièrement à l'API tout en regardant Stack Overflow. Mais je voulais m'amuser davantage avec la bibliothèque.

Autres réglages

Lorsqu'il y a un programme de téléchargement à n'importe quel endroit et que vous ne voulez pas avoir le fichier de configuration pydrive2, vous pouvez accéder aux différents paramètres ci-dessous

# client_Localisation des secrets
GoogleAuth.DEFAULT_SETTINGS['client_config_file'] = os.path.dirname(os.path.abspath(__file__)) + '/resources/client_secrets.json'
#Paramètres pour enregistrer les informations d'identification dans un fichier
GoogleAuth.DEFAULT_SETTINGS['save_credentials'] = True
GoogleAuth.DEFAULT_SETTINGS['save_credentials_backend'] = 'file'
#Où enregistrer le fichier d'informations d'identification
GoogleAuth.DEFAULT_SETTINGS['save_credentials_file'] = os.path.dirname(os.path.abspath(__file__)) + '/resources/' + 'saved_credentials.json'
GoogleAuth.DEFAULT_SETTINGS['get_refresh_token'] = True

Utilisez client_secrets n'importe où et enregistrez les informations d'identification n'importe où

Tout le code téléchargé depuis Google Drive pour tout le dossier avec pydrive2

Je vais rassembler le code que j'ai collecté quelque part

import os
from pydrive2.drive import GoogleDrive
from pydrive2.auth import GoogleAuth
GoogleAuth.DEFAULT_SETTINGS['client_config_file'] = os.path.dirname(
    os.path.abspath(__file__)) + '/resources/client_secrets.json'
#Paramètres pour enregistrer les informations d'identification dans un fichier
GoogleAuth.DEFAULT_SETTINGS['save_credentials'] = True
GoogleAuth.DEFAULT_SETTINGS['save_credentials_backend'] = 'file'
GoogleAuth.DEFAULT_SETTINGS['save_credentials_file'] = os.path.dirname(
    os.path.abspath(__file__)) + '/resources/' + 'saved_credentials.json'
#Informations d'authentification(credentials)Paramètres à mettre à jour automatiquement
GoogleAuth.DEFAULT_SETTINGS['get_refresh_token'] = True

os.chdir(os.path.dirname(os.path.abspath(__file__)))

gauth = GoogleAuth()
gauth.CommandLineAuth()

drive = GoogleDrive(gauth)


def download_recursively(save_folder, drive_folder_id):
    #Créer s'il n'y a pas de dossier de destination d'enregistrement
    if not os.path.exists(save_folder):
        os.makedirs(save_folder)

    max_results = 100
    query = "'{}' in parents and trashed=false".format(drive_folder_id)

    for file_list in drive.ListFile({'q': query, 'maxResults': max_results}):
        for file in file_list:
            print(file)
            #Déterminez s'il s'agit d'un dossier par mimeType
            if file['mimeType'] == 'application/vnd.google-apps.folder':
                download_recursively(os.path.join(save_folder, file['title']), file['id'])
            else:
                file.GetContentFile(os.path.join(save_folder, file['title']))


if __name__ == '__main__':
    # lang model
    drive_folder_id = '1-4dxxxxxx'
    save_folder = '../Folder/a'
    download_recursively(save_folder, drive_folder_id)
    # wiki
    drive_folder_id = '19xxxxxxxxxx'
    save_folder = '../Folder/b'
    download_recursively(save_folder, drive_folder_id)
    # label_id
    drive_folder_id = '1aVSxxxxxxxx'
    save_folder = '../Folder/c'
    download_recursively(save_folder, drive_folder_id)

c'est tout.

Recommended Posts

Utilisez pydrive2 lorsque vous déposez quelques Go de fichiers tels que des données AI de Google Drive. + Configuration immédiate de pydrive2