Saltar al contenido

Google Colab: ¿cómo leer datos de mi unidad de Google?

La guía o código que hallarás en este post es la solución más fácil y efectiva que hallamos a tus dudas o dilema.

Solución:

Editar: a partir de febrero de 2020, ahora hay una interfaz de usuario de primera clase para montar automáticamente Drive.

Primero, abra el explorador de archivos en el lado izquierdo. Mostrará un botón ‘Montar unidad’. Una vez que haya hecho clic, verá un aviso de permisos para montar Drive, y luego sus archivos de Drive estarán presentes sin configuración cuando regrese a la computadora portátil. El flujo completo se ve así:

Ejemplo de montaje automático de la unidad

La respuesta original sigue, a continuación. (Esto también funcionará para las libretas compartidas).

Puede montar sus archivos de Google Drive ejecutando el siguiente fragmento de código:

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

Luego, puede interactuar con sus archivos de Drive en el panel lateral del explorador de archivos o mediante las utilidades de línea de comandos.

Aquí hay un cuaderno de ejemplo.

¡Buenas noticias, PyDrive tiene soporte de primera clase en CoLab! PyDrive es un contenedor para el cliente Python de Google Drive. Aquí hay un ejemplo de cómo descargaría TODOS archivos de una carpeta, similar a usar glob + *:

!pip install -U -q PyDrive
import os
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

# 1. Authenticate and create the PyDrive client.
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

# choose a local (colab) directory to store the data.
local_download_path = os.path.expanduser('~/data')
try:
  os.makedirs(local_download_path)
except: pass

# 2. Auto-iterate using the query syntax
#    https://developers.google.com/drive/v2/web/search-parameters
file_list = drive.ListFile(
    'q': "'1SooKSw8M4ACbznKjnNrYvJ5wxuqJ-YCk' in parents").GetList()

for f in file_list:
  # 3. Create & download by id.
  print('title: %s, id: %s' % (f['title'], f['id']))
  fname = os.path.join(local_download_path, f['title'])
  print('downloading to '.format(fname))
  f_ = drive.CreateFile('id': f['id'])
  f_.GetContentFile(fname)


with open(fname, 'r') as f:
  print(f.read())

Observe que los argumentos para drive.ListFile es un diccionario que coincide con los parámetros utilizados por la API HTTP de Google Drive (puede personalizar el q parámetro para ajustarse a su caso de uso).

Sepa que en todos los casos, los archivos/carpetas están codificados por ID (mire el 1SooKSw8M4ACbznKjnNrYvJ5wxuqJ-YCk) en Google Drive. Esto requiere que busque en Google Drive la identificación específica correspondiente a la carpeta en la que desea rootear su búsqueda.

Por ejemplo, navegue a la carpeta "/projects/my_project/my_data" que se encuentra en su Google Drive.

Google Drive

Vea que contiene algunos archivos, en los que queremos descargar a CoLab. Para obtener la identificación de la carpeta para usarla con PyDrive, mire la URL y extraiga el parámetro de identificación. En este caso, la url correspondiente a la carpeta era:

https://drive.google.com/drive/folders/1SooKSw8M4ACbznKjnNrYvJ5wxuqJ-YCk

Donde el id es la última parte de la url: 1SooKSw8M4ACbznKjnNrYvJ5wxuqJ-YCk.

¡Gracias por las buenas respuestas! La forma más rápida de obtener algunos archivos únicos en Colab desde Google Drive: Cargue el asistente de Drive y monte

from google.colab import drive

Esto solicitará la autorización.

drive.mount('/content/drive')

Abra el enlace en una nueva pestaña -> obtendrá un código; cópielo nuevamente en el mensaje que ahora tiene acceso a Google Drive Check:

!ls "/content/drive/My Drive"

luego copie los archivos según sea necesario:

!cp "/content/drive/My Drive/xy.py" "xy.py"

confirme que los archivos fueron copiados:

!ls

valoraciones y reseñas

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *