web-dev-qa-db-fra.com

Lire le fichier du lecteur dans google colab

J'ai lu le notebook sur la façon d'ouvrir le lecteur. J'ai déjà fait comme indiqué en utilisant:

from google.colab import drive
drive.mount('/content/drive')

Après cela, je peux utiliser !ls pour lister le contenu de mon lecteur mais je ne peux pas lire ou ouvrir aucun fichier. J'ai déjà essayé:

with open("/content/drive/My Drive/filename.ext", "r") as file:

file = open("/content/drive/My Drive/filename.ext", "r")

!cp "/content/drive/My Drive/filename.ext" "filename.ext"

et aussi

import pandas as pd

file = pd.read_csv("/content/drive/My Drive/filename.ext")

Mais rien de ce qui précède n'a fonctionné. J'obtiens toujours "opération non prise en charge" ou "impossible d'ouvrir le fichier en lecture". J'ai vu quelques suggestions d'utilisation de PyDrive. Mais cela se fait en copiant le fichier de Google Drive vers Google Drive. Je ne comprends pas pourquoi vous devez copier des fichiers dans les deux sens, car j'ai besoin d'itérer sur tous les fichiers du dossier. Pourquoi Google Colab ne peut-il pas simplement lire le fichier stocké sur le lecteur? Ou est-ce que je fais quelque chose de mal? Une autre chose est que j'ai téléchargé un tas de fichiers csv, mais Google Drive les répertorie comme ".csv.gsheet" (en utilisant glob). Est-ce que cela pourrait être le problème? Je n'ai pas d'autre idée.

3
RenatoSz

J'ai (partiellement) découvert ce qui se passait sur la base des réponses de Bob Smith et AMI F.
Je crois que Google Drive bloque l'accès en lecture des fichiers convertis aux formats de lecteur (gsheet, gdoc, etc.). Et donc, chaque fois que j'essayais d'utiliser !cat ou open, j'ai eu une erreur "opération non prise en charge". Lorsque j'ai essayé l'exemple de Bob, en créant un fichier puis en le lisant, cela a fonctionné sur mon bloc-notes.
J'ai donc réussi à empêcher Google de convertir des fichiers , supprimé les anciens fichiers et tout téléchargé à nouveau. Maintenant, tous mes csv sont restés inchangés (pas d'extesion de .gsheet) et je peux y accéder en utilisant open.

0
RenatoSz

C'est assez simple!

from google.colab import drive drive.mount('/content/drive')

Cela vous demandera d'ouvrir une URL qui autorisera le montage après avoir copié coller le jeton.

Si vous n'êtes pas encore en mesure de lire les fichiers, alors préfixe votre chemin de fichier avec ceci: 'drive/My Drive 'et vous êtes prêt à partir.

Par exemple: file = 'drive/My Drive/data/file.txt'

data est un répertoire de mon Google Drive contenant file.txt fichier.

8
MANU

J'ai juste essayé de monter et de créer un fichier Drive comme vous l'avez décrit et je n'ai pas pu reproduire l'erreur que vous décrivez.

https://colab.research.google.com/drive/17iiKJPQOPv1eW5-Ctf707mPHXDtipE5G

Essayez peut-être de réinitialiser votre backend en utilisant le menu Runtime -> Reset all runtimes. Ou pouvez-vous partager un cahier illustrant le problème?

2
Bob Smith

Le fait que vous voyiez les noms de fichiers ".csv.gsheet" même si vous importez des noms de fichiers ".csv" me fait penser que vous importez vos fichiers CSV sur sheets.google.com au lieu de drive.google.com. Pouvez-vous confirmer que le téléchargement sur drive.google.com fait fonctionner les choses?

0
Ami F