it-swarm.dev

Como fazer upload do arquivo csv (e usá-lo) do google drive no google collaboratory

Queria experimentar python, e google colaboratory seem a opção mais fácil.Eu tenho alguns arquivos no meu google drive, e queria enviá-los para o google colaboratory. Então aqui está o código que eu estou usando :

!pip install -U -q PyDrive

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)

# 2. Create & upload a file text file.
uploaded = drive.CreateFile({'xyz.csv': 'C:/Users/abc/Google Drive/def/xyz.csv'})
uploaded.Upload()
print('Uploaded file with title {}'.format(uploaded.get('title')))

import pandas as pd
xyz = pd.read_csv('Untitled.csv')

Basicamente, para o usuário "abc", eu queria enviar o arquivo xyz.csv da pasta "def". Eu posso fazer o upload do arquivo, mas quando eu pedir o título ele diz que o título é "Untitled" . quando eu pedir o ID do arquivo que foi carregado, ele muda toda vez, então eu não posso usar o Id.

Como faço para ler o arquivo ??? e defina um nome de arquivo adequado ???

xyz = pd.read_csv('Untitled.csv') doesnt work
xyz = pd.read_csv('Untitled') doesnt work
xyz = pd.read_csv('xyz.csv') doesnt work

Aqui estão alguns outros links que encontrei ..

Como importar e ler um arquivo Shelve ou Numpy no Google Collaboratory?

Carrega arquivos de dados locais para o colaboratório

12
Akhil

Para ler um arquivo csv do meu google drive em colaboratório, eu precisava fazer os seguintes passos:

1) Primeiro precisei autorizar o colaboratory para acessar meu drive do google com o PyDrive. Eu usei o exemplo de código deles para isso. (colado abaixo)

2) Eu também precisava fazer login no meu drive.google.com para encontrar o código de destino do arquivo que eu queria baixar. Achei isso clicando com o botão direito no arquivo e copiando o link compartilhado para o ID. O id é algo como isto: '1BH-rffqv_1auzO7tdubfaOwXzf278vJK' 

3) Então eu corri baixado.GetContentFile ('myName.csv') - colocando o nome que eu queria (no seu caso, é xyz.csv) 

Isso parece funcionar para mim!

Eu usei o código que eles forneceram em seu exemplo:

# Code to read csv file into colaboratory:
!pip install -U -q PyDrive
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)

#2. Get the file
downloaded = drive.CreateFile({'id':'1BH-rffqv_1auzO7tdubfaOwXzf278vJK'}) # replace the id with id of file you want to access
downloaded.GetContentFile('xyz.csv')  

#3. Read file as panda dataframe
import pandas as pd
xyz = pd.read_csv('xyz.csv') 
15
Cendria

Criação de arquivo leva um corpo de arquivo i seu primeiro parâmetro. Se você verificar a documentação de file create , existem vários campos que você pode preencher. No exemplo abaixo, você os adicionaria ao file_metadata separado por vírgulas.

file_metadata = {'name': 'photo.jpg'}
media = MediaFileUpload('files/photo.jpg',
                        mimetype='image/jpeg')
file = drive_service.files().create(body=file_metadata,
                                    media_body=media,
                                    fields='id').execute()

Sugiro que você leia a seção file upload da documentação para ter uma ideia melhor de como o upload funciona e quais arquivos podem ser lidos no google drive. Não tenho certeza de que isso dará acesso a Colaboração do Google

Correção possível para o seu código.

Eu não sou um devedor python, mas meu palpite seria você pode definir o seu título, fazendo isso.

uploaded = drive.CreateFile({'xyz.csv': 'C:/Users/abc/Google Drive/def/xyz.csv',
                             'name': 'xyz.csv'})
0
DaImTo

Ok, eu tenho certeza que estou bem atrasado, mas eu gostaria de colocar isso para fora, apenas no caso. Eu acho que a maneira mais fácil de fazer isso é

from google.colab import drive
drive.mount("/content/drive")

Isso gerará um link, clique nele e faça login usando o Google OAuth, cole a chave na célula colab e você está conectado!

confira a lista de arquivos disponíveis na barra lateral no lado esquerdo e copie o caminho do arquivo que você deseja acessar. Leia como você faria, com qualquer outro arquivo.

0
gavin