Das Problem ist einfach: Ich habe einige Daten zu gDrive, zum Beispiel bei
/projects/my_project/my_data*
.
Außerdem habe ich ein einfaches Notizbuch in gColab.
Also möchte ich etwas tun wie:
for file in glob.glob("/projects/my_project/my_data*"):
do_something(file)
Leider schlagen alle Beispiele (wie dieses - https://colab.research.google.com/notebook#fileId=/v2/external/notebooks/io.ipynb zum Beispiel) vor, nur alle erforderlichen Daten hauptsächlich in das Notizbuch zu laden.
Wenn ich jedoch viele Daten habe, kann dies ziemlich kompliziert sein. Gibt es Möglichkeiten, dieses Problem zu lösen?
Danke für die Hilfe!
python
google-colaboratory
Scitator
quelle
quelle
Antworten:
Gute Nachrichten, PyDrive bietet erstklassigen Support für CoLab! PyDrive ist ein Wrapper für den Google Drive-Python-Client. Hier ist ein Beispiel, wie Sie ALLE Dateien aus einem Ordner herunterladen würden , ähnlich wie bei Verwendung von
glob
+*
:Beachten Sie, dass es sich bei den Argumenten um
drive.ListFile
ein Wörterbuch handelt, das mit den von der HTTP-API von Google Drive verwendeten Parametern übereinstimmt (Sie können denq
Parameter an Ihren Anwendungsfall anpassen ).Beachten Sie , dass Dateien / Ordner in allen Fällen von IDs (siehe 1SooKSw8M4ACbznKjnNrYvJ5wxuqJ-YCk ) in Google Drive codiert werden . Dazu müssen Sie Google Drive nach der spezifischen ID durchsuchen, die dem Ordner entspricht, in dem Sie Ihre Suche rooten möchten.
Navigieren Sie beispielsweise zu dem Ordner
"/projects/my_project/my_data"
, der sich in Ihrem Google Drive befindet.Stellen Sie sicher, dass es einige Dateien enthält, die wir in CoLab herunterladen möchten. Um die ID des Ordners abzurufen und von PyDrive zu verwenden, überprüfen Sie die URL und extrahieren Sie den Parameter id. In diesem Fall lautete die dem Ordner entsprechende URL:
Wo die ID das letzte Stück der URL ist: 1SooKSw8M4ACbznKjnNrYvJ5wxuqJ-YCk .
quelle
local_download_path = os.getcwd()
Gebote verwendetFileNotFoundError: [Errno 2] No such file or directory: '/content/.ipynb_checkpoints'
, ich weiß nicht, warumos.getcwd()
ich/content/
statt eines/content/drive/ML/../../../../../**.ipnb
Vorschlags gebe ?Bearbeiten : Ab Februar 2020 gibt es jetzt eine erstklassige Benutzeroberfläche zum automatischen Mounten von Drive.
Öffnen Sie zunächst den Dateibrowser auf der linken Seite. Es wird eine Schaltfläche "Mount Drive" angezeigt. Sobald Sie darauf geklickt haben, wird eine Berechtigungsaufforderung zum Mounten von Drive angezeigt. Anschließend werden Ihre Drive-Dateien ohne Setup angezeigt, wenn Sie zum Notebook zurückkehren. Der abgeschlossene Ablauf sieht folgendermaßen aus:
Die ursprüngliche Antwort folgt unten. (Dies funktioniert auch weiterhin für freigegebene Notizbücher.)
Sie können Ihre Google Drive-Dateien bereitstellen, indem Sie den folgenden Codeausschnitt ausführen:
Anschließend können Sie mit Ihren Drive-Dateien im Seitenbereich des Dateibrowsers oder mithilfe von Befehlszeilenprogrammen interagieren.
Hier ist ein Beispiel für ein Notizbuch
quelle
Danke für die tollen Antworten! Der schnellste Weg, um ein paar einmalige Dateien von Google Drive nach Colab zu bringen: Laden Sie den Drive-Helfer und mounten Sie ihn
Dies fordert zur Autorisierung auf.
Öffnen Sie den Link in einem neuen Tab-> Sie erhalten einen Code - kopieren Sie diesen zurück in die Eingabeaufforderung, auf die Sie jetzt Zugriff auf Google Drive Check haben:
Kopieren Sie dann die Datei (en) nach Bedarf:
Bestätigen Sie, dass die Dateien kopiert wurden:
quelle
Die meisten der vorherigen Antworten sind etwas (sehr) kompliziert,
Ich habe herausgefunden, dass dies der einfachste und schnellste Weg ist, um Google Drive in CO Lab zu mounten. Sie können das ändern
mount directory location
, was immer Sie wollen, indem Sie einfach den Parameter für änderndrive.mount
. Sie erhalten einen Link, über den Sie die Berechtigungen für Ihr Konto akzeptieren können. Anschließend müssen Sie den generierten Schlüssel kopieren und einfügen. Anschließend wird das Laufwerk im ausgewählten Pfad bereitgestellt.force_remount
wird nur verwendet, wenn Sie das Laufwerk bereitstellen müssen, unabhängig davon, ob es zuvor geladen wurde. Sie können diesen when-Parameter vernachlässigen, wenn Sie die Bereitstellung nicht erzwingen möchtenBearbeiten: Weitere
IO
Informationen zum Ausführen der Vorgänge finden Sie in colab https://colab.research.google.com/notebooks/io.ipynbquelle
Sie können eine Datei nicht dauerhaft in colab speichern. Sie können zwar Dateien von Ihrem Laufwerk importieren und jedes Mal, wenn Sie mit der Datei fertig sind, wieder speichern.
So mounten Sie das Google-Laufwerk in Ihre Colab-Sitzung
Sie können einfach auf Google Drive schreiben, wie Sie es in ein lokales Dateisystem tun würden. Wenn Sie nun sehen, dass Ihr Google Drive auf der Registerkarte "Dateien" geladen wird. Jetzt können Sie von Ihrem Colab aus auf jede Datei zugreifen, sowohl schreiben als auch lesen. Die Änderungen werden in Echtzeit auf Ihrem Laufwerk vorgenommen, und jeder, der über den Zugriffslink zu Ihrer Datei verfügt, kann die von Ihnen vorgenommenen Änderungen in Ihrem Colab anzeigen.
Beispiel
quelle
Ich bin faul und mein Gedächtnis ist schlecht, deshalb habe ich beschlossen, easycolab zu erstellen, das sich leichter merken und eingeben lässt :
Stellen Sie sicher, dass Sie es zuerst installieren:
!pip install easycolab
Die
mount()
Methode implementiert dies grundsätzlich:quelle
Sie können einfach die Codefragmente auf der linken Seite des Bildschirms verwenden. Geben Sie hier die Bildbeschreibung ein
Fügen Sie "Google Drive in Ihre VM einbinden" ein.
Führen Sie den Code aus und kopieren Sie den Code und fügen Sie ihn in die URL ein
und überprüfen Sie dann mit! ls die Verzeichnisse
In den meisten Fällen finden Sie das gewünschte Verzeichnis im Verzeichnis "/ gdrive / My drive".
dann können Sie es so ausführen:
quelle
Ich habe eine Klasse geschrieben, die alle Daten in das '.' Speicherort auf dem Colab-Server
Das Ganze kann von hier abgerufen werden https://github.com/brianmanderson/Copy-Shared-Google-to-Colab
quelle
So extrahieren Sie die Google Drive-Zip-Datei aus einem Google Colab-Notizbuch:
quelle
@wenkesj
Ich spreche über das Kopieren des Verzeichnisses und aller seiner Unterverzeichnisse.
Für mich habe ich eine Lösung gefunden, die so aussieht:
Trotzdem sieht es so aus, als würde gDrive nicht gerne zu viele Dateien kopieren.
quelle
Es gibt viele Möglichkeiten, die Dateien in Ihrem Colab-Notizbuch (**. Ipnb) zu lesen. Einige davon sind:
Methode 1 und 2 funktionierten für mich , Ruhe konnte ich nicht herausfinden. Wenn jemand könnte, wie andere im obigen Beitrag versucht haben, schreiben Sie bitte eine elegante Antwort. Danke im Voraus.!
Erste Methode:
Ich konnte mein Google-Laufwerk nicht bereitstellen, daher habe ich diese Bibliotheken installiert
Sobald der Installations- und Autorisierungsprozess abgeschlossen ist, mounten Sie zuerst Ihr Laufwerk.
Nach der Installation konnte ich das Google-Laufwerk mounten. Alles in Ihrem Google-Laufwerk beginnt mit / content / drive
Jetzt können Sie die Datei einfach
path_to_your_folder
über den obigen Pfad aus dem Ordner in Pandas lesen .Zweite Methode :
Was praktisch ist, wenn Ihre Datei, die Sie lesen möchten, im aktuellen Arbeitsverzeichnis vorhanden ist.
Wenn Sie Dateien aus Ihrem lokalen Dateisystem hochladen müssen, können Sie den folgenden Code verwenden, andernfalls vermeiden Sie ihn einfach.!
Angenommen, Sie haben unterhalb der Ordnerhierarchie in Ihrem Google-Laufwerk:
Dann brauchen Sie einfach den folgenden Code, um in Pandas zu laden.
quelle
So lesen Sie alle Dateien in einem Ordner:
quelle
Dies funktionierte perfekt für mich. Später konnte ich die
os
Bibliothek verwenden, um auf meine Dateien zuzugreifen, genau wie ich auf meinem PC darauf zugegriffen habequelle