Istnieje wiele sposobów odczytywania plików w notatniku colab (**. Ipnb), kilka z nich to:
- Montowanie Dysku Google na maszynie wirtualnej środowiska wykonawczego. tutaj i tutaj
- Korzystanie z google.colab.files.upload (). najłatwiejsze rozwiązanie
- Korzystanie z natywnego interfejsu API REST ;
- Używanie otoki wokół API, takiej jak PyDrive
Metoda 1 i 2 zadziałała dla mnie , reszty nie byłem w stanie rozgryźć. Jeśli ktokolwiek mógł, jak inni próbowali w powyższym poście, napisz elegancką odpowiedź. z góry dziękuję.!
Pierwsza metoda:
Nie udało mi się zamontować dysku Google, więc zainstalowałem te biblioteki
!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}
Po zakończeniu procesu instalacji i autoryzacji najpierw montujesz dysk.
!mkdir -p drive
!google-drive-ocamlfuse drive
Po instalacji udało mi się zamontować dysk Google, wszystko na twoim dysku Google zaczyna się od / content / drive
!ls /content/drive/ML/../../../../path_to_your_folder/
Teraz możesz po prostu wczytać plik z path_to_your_folder
folderu do pandy, korzystając z powyższej ścieżki.
import pandas as pd
df = pd.read_json('drive/ML/../../../../path_to_your_folder/file.json')
df.head(5)
przypuszczasz, że używasz otrzymanej ścieżki bezwzględnej i nie używasz /../ ..
Druga metoda :
Co jest wygodne, jeśli plik, który chcesz przeczytać, znajduje się w bieżącym katalogu roboczym.
Jeśli chcesz przesłać jakiekolwiek pliki z lokalnego systemu plików, możesz użyć poniższego kodu, w przeciwnym razie po prostu tego unikaj.!
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])))
załóżmy, że masz poniżej hierarchii folderów na dysku Google:
/content/drive/ML/../../../../path_to_your_folder/
Następnie wystarczy poniższy kod, aby załadować do pand.
import pandas as pd
import io
df = pd.read_json(io.StringIO(uploaded['file.json'].decode('utf-8')))
df