Ci sono molti modi per leggere i file nel tuo taccuino colab (**. Ipnb), alcuni sono:
- Montare il tuo Google Drive nella macchina virtuale del runtime. qui e qui
- Utilizzando google.colab.files.upload (). la soluzione più semplice
- Utilizzando l' API REST nativa ;
- Utilizzo di un wrapper attorno all'API come PyDrive
I metodi 1 e 2 hanno funzionato per me , il resto non sono riuscito a immaginarlo. Se qualcuno può, come altri hanno provato nel post sopra, per favore scrivi una risposta elegante. Grazie in anticipo.!
Primo metodo:
Non sono riuscito a montare il mio Google Drive, quindi ho installato queste librerie
# 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 volta terminato il processo di installazione e autorizzazione, devi prima montare l'unità.
!mkdir -p drive
!google-drive-ocamlfuse drive
Dopo l'installazione sono stato in grado di montare l'unità Google, tutto nella tua unità Google inizia da / content / drive
!ls /content/drive/ML/../../../../path_to_your_folder/
Ora puoi semplicemente leggere il file dalla path_to_your_folder
cartella in Panda usando il percorso sopra.
import pandas as pd
df = pd.read_json('drive/ML/../../../../path_to_your_folder/file.json')
df.head(5)
supponi di utilizzare il percorso assoluto ricevuto e di non utilizzare /../ ..
Secondo metodo :
Il che è comodo, se il tuo file che vuoi leggere è presente nella directory di lavoro corrente.
Se hai bisogno di caricare file dal tuo file system locale, puoi usare il codice seguente, altrimenti evitalo.!
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])))
supponi di avere sotto la gerarchia delle cartelle nel tuo Google Drive:
/content/drive/ML/../../../../path_to_your_folder/
Quindi, hai semplicemente bisogno del codice seguente per caricarlo nei panda.
import pandas as pd
import io
df = pd.read_json(io.StringIO(uploaded['file.json'].decode('utf-8')))
df