[PYTHON] Verwenden Sie pydrive2, wenn Sie einige GB Dateien wie AI-Daten von Google Drive löschen. + Sofortige Konfiguration von pydrive2

Es gab einige GB AI-bezogene Dateien (BERT). Ich möchte herunterladen, was von colab gelernt und lokal in Google Drive oder auf einem Server von Google Drive gespeichert wurde. Ich habe versucht, "Pydrive" zu verwenden, aber es war Moos.

Fazit

Verwenden Sie "pydrive2" anstelle von "pydrive". Sie können große Dateien herunterladen

Inhalt

Die Download-Datei ist zu groß und moos auf pydrive. Sie können mit pydrive2 gehen Es scheint, dass sich die intern verwendete Methode geändert hat Ich wurde auf github informiert, dass ich pydrive2 für isssue verwenden könnte. Das Herunterladen von Google Drive ist ein Wegwerfprogramm, mit dem Sie die API ständig aufrufen können, während Sie den Stapelüberlauf beobachten. Aber ich wollte mehr Spaß mit der Bibliothek haben.

Andere Einstellungen

Wenn sich an einem beliebigen Ort ein Download-Programm befindet und Sie die Einstellungsdatei pydrive2 nicht haben möchten, können Sie die folgenden Einstellungen vornehmen

# client_Ort der Geheimnisse
GoogleAuth.DEFAULT_SETTINGS['client_config_file'] = os.path.dirname(os.path.abspath(__file__)) + '/resources/client_secrets.json'
#Einstellungen zum Speichern von Anmeldeinformationen in einer Datei
GoogleAuth.DEFAULT_SETTINGS['save_credentials'] = True
GoogleAuth.DEFAULT_SETTINGS['save_credentials_backend'] = 'file'
#Speicherort der Anmeldeinformationsdatei
GoogleAuth.DEFAULT_SETTINGS['save_credentials_file'] = os.path.dirname(os.path.abspath(__file__)) + '/resources/' + 'saved_credentials.json'
GoogleAuth.DEFAULT_SETTINGS['get_refresh_token'] = True

Verwenden Sie client_secrets überall und speichern Sie die Anmeldeinformationen überall

Der gesamte von Google Drive heruntergeladene Code für den gesamten Ordner mit "pydrive2"

Ich werde den Code zusammenstellen, den ich irgendwo gesammelt habe

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'
#Einstellungen zum Speichern von Anmeldeinformationen in einer Datei
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'
#Authentifizierungsinformationen(credentials)Einstellungen werden automatisch aktualisiert
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):
    #Erstellen, wenn kein Speicherzielordner vorhanden ist
    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)
            #Bestimmen Sie anhand von mimeType, ob es sich um einen Ordner handelt
            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)

das ist alles.

Recommended Posts

Verwenden Sie pydrive2, wenn Sie einige GB Dateien wie AI-Daten von Google Drive löschen. + Sofortige Konfiguration von pydrive2