Quels sont les moyens courants d'importer des données privées dans les cahiers Google Colaboratory? Est-il possible d'importer une fiche Google non publique? Vous ne pouvez pas lire à partir de fichiers système. Les documents d’introduction renvoient à un guide sur l’utilisation de BigQuery , mais cela semble un peu ... beaucoup.
Un exemple de bloc-notes officiel illustrant le chargement/téléchargement de fichiers locaux et l'intégration avec Drive et les feuilles est disponible ici: https://colab.research.google.com/notebooks/io.ipynb
Le moyen le plus simple de partager des fichiers est de monter votre Google Drive.
Pour ce faire, exécutez ce qui suit dans une cellule de code:
from google.colab import drive
drive.mount('/content/drive')
Ensuite, vos fichiers Drive seront montés et vous pourrez les parcourir à l'aide du navigateur de fichiers situé dans le panneau latéral.
Voici un exemple de bloc-notes complet
Télécharger
from google.colab import files
files.upload()
Télécharger
files.download('filename')
Répertoire de la liste
files.os.listdir()
Un moyen simple d’importer des données à partir de votre disque de googled, ce qui fait gagner du temps aux gens (je ne sais pas pourquoi Google ne répertorie pas cette étape par étape de manière explicite).
INSTALLER ET AUTHENTIFIER PYDRIVE
!pip install -U -q PyDrive ## you will have install for every colab session
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)
TÉLÉCHARGEMENT
si vous avez besoin de télécharger des données à partir d'un lecteur local:
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])))
exécuter et cela affichera un bouton choisir un fichier - trouvez votre fichier de téléchargement - cliquez sur Ouvrir
Après le téléchargement, il affichera:
sample_file.json(text/plain) - 11733 bytes, last modified: x/xx/2018 - %100 done
User uploaded file "sample_file.json" with length 11733 bytes
CREER UN FICHIER POUR NOTES
Si votre fichier de données est déjà dans votre lecteur, vous pouvez passer à cette étape.
Maintenant, c'est dans votre lecteur Google. Recherchez le fichier dans votre lecteur google et faites un clic droit. Cliquez sur obtenir le lien partageable. Vous obtiendrez une fenêtre avec:
https://drive.google.com/open?id=29PGh8XCts3mlMP6zRphvnIcbv27boawn
Copier - '29PGh8XCts3mlMP6zRphvnIcbv27boawn' - c'est l'ID du fichier.
Dans ton cahier:
json_import = drive.CreateFile({'id':'29PGh8XCts3mlMP6zRphvnIcbv27boawn'})
json_import.GetContentFile('sample.json') - 'sample.json' is the file name that will be accessible in the notebook.
IMPORTATION DE DONNÉES DANS UN CAHIER DE NOTES
Pour importer les données que vous avez téléchargées dans le bloc-notes (un fichier json dans cet exemple - le mode de chargement dépend du type de fichier/de données - .txt, .csv, etc.):
sample_uploaded_data = json.load(open('sample.json'))
Maintenant, vous pouvez imprimer pour voir les données sont là:
print(sample_uploaded_data)
La manière la plus simple que j'ai faite est:
Cela vous permet de télécharger vos fichiers via Google Drive.
Exécutez le code ci-dessous (trouvé ceci quelque part précédemment mais je ne trouve plus la source - remerciement de celui qui l'a écrit!):
!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}
Cliquez sur le premier lien qui s'affiche pour vous inviter à vous connecter à Google. ensuite, un autre message apparaîtra pour vous demander l'autorisation d'accéder à votre Google Drive.
Ensuite, lancez ceci, ce qui crée un répertoire nommé 'lecteur' et lie votre Google Drive à celui-ci:
!mkdir -p drive
!google-drive-ocamlfuse drive
Si vous faites maintenant un !ls
, il y aura un lecteur de répertoire. Si vous faites un !ls drive
, vous pourrez voir tout le contenu de votre Google Drive.
Ainsi, par exemple, si je sauvegarde mon fichier appelé abc.txt
dans un dossier appelé ColabNotebooks
de Google Drive, je peux désormais y accéder via un chemin drive/ColabNotebooks/abc.txt
.
Importation rapide et facile depuis Dropbox:
!pip install dropbox
import dropbox
access_token = 'YOUR_ACCESS_TOKEN_HERE' # https://www.dropbox.com/developers/apps
dbx = dropbox.Dropbox(access_token)
# response = dbx.files_list_folder("")
metadata, res = dbx.files_download('/dataframe.pickle2')
with open('dataframe.pickle2', "wb") as f:
f.write(res.content)
étape 1- Montez votre Google Drive sur Collaboratory
from google.colab import drive
drive.mount('/content/gdrive')
Étape 2- Vous verrez maintenant vos fichiers Google Drive dans le volet de gauche (Explorateur de fichiers). Cliquez avec le bouton droit de la souris sur le fichier que vous devez importer et sélectionnez çopie chemin ..__, puis importez comme d'habitude dans les pandas en utilisant ce chemin copié.
import pandas as pd
df=pd.read_csv('gdrive/My Drive/data.csv')
Terminé!
La solution la plus simple que j'ai trouvée jusqu'à présent et qui fonctionne parfaitement pour les fichiers CSV de taille petite à moyenne est la suivante:
pandas.read_csv(URL)
Cela peut ou peut ne pas fonctionner pour lire un fichier texte ligne par ligne ou des fichiers binaires.
Dans la barre de gauche de tout laboratoire, vous trouverez une section intitulée "Fichiers" . Téléchargez vos fichiers ici et utilisez ce chemin.
"/content/YourFileName.extension"
ex: pd.read_csv('/content/Forbes2015.csv');
Vous pouvez également utiliser mes implémentations sur google.colab et PyDrive à l’adresse https://github.com/ruelj2/Google_drive , ce qui facilite grandement les choses.
!pip install - U - q PyDrive
import os
os.chdir('/content/')
!git clone https://github.com/ruelj2/Google_drive.git
from Google_drive.handle import Google_drive
Gd = Google_drive()
Ensuite, si vous souhaitez charger tous les fichiers d’un répertoire Google Drive,
Gd.load_all(local_dir, drive_dir_ID, force=False)
Ou juste un fichier spécifique avec
Gd.load_file(local_dir, file_ID)
Il a été résolu, trouvez les détails ici et utilisez la fonction ci-dessous: https://stackoverflow.com/questions/47212852/how-to-import-and-read-a-shelve-or-numpy- fichier-dans-google-colaboratory/49467113 # 49467113
from google.colab import files
import zipfile, io, os
def read_dir_file(case_f):
# author: yasser mustafa, 21 March 2018
# case_f = 0 for uploading one File and case_f = 1 for uploading one Zipped Directory
uploaded = files.upload() # to upload a Full Directory, please Zip it first (use WinZip)
for fn in uploaded.keys():
name = fn #.encode('utf-8')
#print('\nfile after encode', name)
#name = io.BytesIO(uploaded[name])
if case_f == 0: # case of uploading 'One File only'
print('\n file name: ', name)
return name
else: # case of uploading a directory and its subdirectories and files
zfile = zipfile.ZipFile(name, 'r') # unzip the directory
zfile.extractall()
for d in zfile.namelist(): # d = directory
print('\n main directory name: ', d)
return d
print('Done!')
si vous voulez faire cela sans code, c'est assez facile. Zip votre dossier dans mon cas il est
dataset.Zip
ensuite, dans Colab, cliquez avec le bouton droit de la souris sur le dossier dans lequel vous souhaitez placer ce fichier et appuyez sur Télécharger, puis téléchargez ce fichier Zip. Après cela, écrivez cette commande Linux.
!unzip <your_Zip_file_name>
vous pouvez voir que vos données ont été téléchargées avec succès.
Voici un moyen d'importer des fichiers de Google Drive dans des cahiers.
!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}
!mkdir -p drive
!google-drive-ocamlfuse drive
disons que votre fichier de données dans le dossier Colab_Notebooks est db.csv.
import pandas as pd
dataset=pd.read_csv("drive/Colab_Notebooks/db.csv")
J'espère que ça aide