El problema es simple: tengo algunos datos en gDrive, por ejemplo, en /projects/my_project/my_data* .
También tengo un cuaderno simple en gColab.
Entonces, me gustaría hacer algo como:
for file in glob.glob("/projects/my_project/my_data*"): do_something(file)Desafortunadamente, todos los ejemplos (como este, https://colab.research.google.com/notebook#fileId=/v2/external/notebooks/io.ipynb , por ejemplo) sugieren cargar principalmente todos los datos necesarios en el cuaderno.
Pero, si tengo muchos datos, puede ser bastante complicado. ¿Hay alguna oportunidad para resolver este problema?
¡Gracias por la ayuda!
Editar : a partir de febrero de 2020, ahora hay una interfaz de usuario de primera clase para montar Drive automáticamente.
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í:
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.
¡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 los 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()) Tenga en cuenta que los argumentos de drive.ListFile son un diccionario que coincide con los parámetros utilizados por la API HTTP de Google Drive (puede personalizar el parámetro q para ajustarlo a su caso de uso).
Tenga en cuenta que, en todos los casos, los archivos/carpetas están codificados por ID ( eche un vistazo a 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.

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:

Donde la identificación 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 driveEsto 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