Care sunt cele mai comune modalități de a importa date private în Google Colaboratory notebook-uri? Este posibil de a importa un non-publice de Google foaie? Puteți't citite din fișiere de sistem. Introductiv docs link-ul de la un ghidul privind utilizarea BigQuery, dar mi se pare cam... mult.
Un oficial exemplu notebook demonstrând locale fișier de încărcare/descărcare și de integrare cu Mașina și foi sunt disponibile aici: https://colab.research.google.com/notebooks/io.ipynb
Cel mai simplu mod de a partaja fișiere este de a monta pe Google Drive.
Pentru a face acest lucru, executați următoarele într-un cod de celule:
from google.colab import drive
drive.mount('/content/drive')
După aceea, Unitatea fișierele vor fi montate și puteți naviga cu browser-ul de fișiere în panoul lateral.
Aici's o full exemplu notebook
Mod simplu de a importa date de pe googledrive - fac asta de a salva oamenii de timp (don't știu de ce google nu't lista asta, pas cu pas, în mod explicit).
INSTALA ȘI DE A AUTENTIFICA 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)
ÎNCĂRCAREA
dacă aveți nevoie pentru a încărca datele de pe o unitate 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])))
executa și aceasta va afișa o alegeți fișier buton - găsiți fișierul de încărcare - faceți clic pe deschidere
După încărcare, se va afișa:
sample_file.json(text/plain) - 11733 bytes, last modified: x/xx/2018 - %100 done
User uploaded file "sample_file.json" with length 11733 bytes
CREAȚI FIȘIERUL PENTRU NOTEBOOK
Dacă fișierul de date este deja în gdrive, puteți să săriți peste acest pas.
Acum este în google drive. Pentru a găsi fișierul în google drive și dați clic dreapta. Faceți clic pe 'link partajabile.' Veți obține o fereastră cu:
https://drive.google.com/open?id=29PGh8XCts3mlMP6zRphvnIcbv27boawn
Copy - '29PGh8XCts3mlMP6zRphvnIcbv27boawn' - este identificatorul de fișier.
În caiet:
json_import = drive.CreateFile({'id':'29PGh8XCts3mlMP6zRphvnIcbv27boawn'})
json_import.GetContentFile('sample.json') - 'sample.json' is the file name that will be accessible in the notebook.
IMPORT DE DATE ÎN NOTEBOOK
Pentru a importa datele încărcate în notebook (un fișier json în acest exemplu - cum ai încărca va depinde de fișiere/date de tip .txt,.csv etc. ):
sample_uploaded_data = json.load(open('sample.json'))
Acum puteți imprima pentru a vedea datele sunt acolo:
print(sample_uploaded_data)
pasul 1 - Mount Google Drive pentru a Collaboratory
from google.colab import drive
drive.mount('/content/gdrive')
pasul 2 - Acum veți vedea pe Google Drive fișiere în panoul din stânga (file explorer). Faceți clic dreapta pe fișierul pe care doriți să-l importați și selectați çopy calea. Apoi import, ca de obicei, la panda, folosind acest copiate cale.
import pandas as pd
df=pd.read_csv('gdrive/My Drive/data.csv')
Done!
Acest lucru vă permite să încărcați fișiere prin intermediul Google Drive.
Rula codul de mai jos (gasit asta undeva anterior, dar nu pot't găsi sursa nou - credite pentru cine a scris-o!):
!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}
Faceți clic pe primul link care vine de sus, care vă va solicita să vă conectați la Google, după care un alt va apărea care vă va cere permisiunea de a accesa la Google Drive.
Apoi, a alerga acest lucru, care creează un director numit 'conduc', și link-uri Google Drive pentru ea:
!mkdir -p drive
!google-drive-ocamlfuse drive
Dacă ai face-o!e acum, nu va fi un director de unitate, și dacă ai face-o!e mașina puteți vedea toate conținutul de pe Google Drive.
Deci, de exemplu, dacă am salva fișierul meu numit abc.txt într-un folder numit
ColabNotebooks în Google Drive, acum pot să-l acceseze prin intermediul unui drum drive/ColabNotebooks/abc.txt
Cel mai simplu mod de am'am făcut-o este :
Rapid și ușor de import de la 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)
Cea mai simplă soluție am găsit până acum care functioneaza perfect pentru dimensiuni mici și mijlocii fișiere CSV este:
panda.read_csv(URL)
Acest lucru poate sau nu poate lucra pentru a citi un fișier text, linie cu linie sau fișiere binare.
Puteți folosi, de asemenea, mi implementări pe google.colab și PyDrive la https://github.com/ruelj2/Google_drive ceea ce îl face mult mai ușor.
!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()
Apoi, dacă doriți să încărcați toate fișierele în Google Drive director, doar
Gd.load_all(local_dir, drive_dir_ID, force=False)
Sau doar un anumit fișier cu
Gd.load_file(local_dir, file_ID)
După cum sa menționat de @Vivek Solanki, am, de asemenea, încărcate dosarul meu pe colaboratory sub tabloul de bord "Fișier" secțiune.
Doar să ia o notă de în cazul în care fișierul a fost încărcat. Pentru mine,
train_data = pd.read_csv('/fileName.csv')
a lucrat.
S-a rezolvat, găsiți detalii aici și vă rugăm să folosiți funcția de mai jos: https://stackoverflow.com/questions/47212852/how-to-import-and-read-a-shelve-or-numpy-file-in-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!')
Aici este o modalitate de a importa fișiere din google drive pentru notebook-uri.
!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
vă permite să spun setul de date fișier în Colab_Notebooks folderul și numele său este db.csv
import pandas as pd
dataset=pd.read_csv("drive/Colab_Notebooks/db.csv")
Sper că vă ajută
dacă doriți pentru a face acest lucru fără cod de it's destul de ușor. Zip dosar în cazul meu, este
dataset.zip
apoi, în Colab click dreapta pe folderul unde doriți să puneți acest fișier și apăsați pentru a Încărca și încărcați acest fișier zip. După care scrie această comandă Linux.
!unzip <your_zip_file_name>
puteți vedea datele dvs. este încărcat cu succes.