Hay muchas formas de leer los archivos en su cuaderno colab (**. Ipnb), algunas son:
- Montaje de su Google Drive en la máquina virtual del tiempo de ejecución. aquí y aquí
- Usando google.colab.files.upload (). la solucion mas facil
- Usando la API REST nativa ;
- Usando un contenedor alrededor de la API como PyDrive
El método 1 y 2 funcionaron para mí , el resto no pude entender. Si alguien pudiera, como otros intentaron en la publicación anterior, escriba una respuesta elegante. gracias por adelantado.!
Primer método:
No pude montar mi unidad de Google, así que instalé estas bibliotecas
# Install a Drive FUSE wrapper.
# https://github.com/astrada/google-drive-ocamlfuse
!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}
Una vez finalizado el proceso de instalación y autorización, primero monte su unidad.
!mkdir -p drive
!google-drive-ocamlfuse drive
Después de la instalación, pude montar la unidad de Google, todo en su unidad de Google comienza desde / content / drive
!ls /content/drive/ML/../../../../path_to_your_folder/
Ahora puede simplemente leer el archivo de la path_to_your_folder
carpeta en pandas usando la ruta anterior.
import pandas as pd
df = pd.read_json('drive/ML/../../../../path_to_your_folder/file.json')
df.head(5)
se supone que usa la ruta absoluta que recibió y no usa /../ ..
Segundo método :
Lo cual es conveniente, si el archivo que desea leer está presente en el directorio de trabajo actual.
Si necesita cargar algún archivo desde su sistema de archivos local, puede usar el siguiente código, de lo contrario simplemente evítelo.
from google.colab import files
uploaded = files.upload()
for fn in uploaded.keys():
print('User uploaded file "{name}" with length {length} bytes'.format(
name=fn, length=len(uploaded[fn])))
suponga que tiene debajo de la jerarquía de carpetas en su unidad de Google:
/content/drive/ML/../../../../path_to_your_folder/
Luego, simplemente necesita el siguiente código para cargar en pandas.
import pandas as pd
import io
df = pd.read_json(io.StringIO(uploaded['file.json'].decode('utf-8')))
df