Как загрузить файл csv (и использовать его) с диска Google в лабораторию Google

Хотел попробовать python, и коллаборация google показалась самым простым вариантом. У меня есть файлы на моем диске google, и я хотел загрузить их в коллаборацию google. Итак, вот код, который я использую:

!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')

По сути, для пользователя «abc» я хотел загрузить файл xyz.csv из папки «def». Я могу загрузить файл, но когда я спрашиваю название, он говорит, что название «Без названия». когда я запрашиваю идентификатор загруженного файла, он меняется каждый раз, поэтому я не могу использовать его.

Как мне прочитать файл ??? и установить правильное имя файла ???

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

Вот еще несколько ссылок, которые я нашел ..

Как импортировать и прочитать полка или файл Numpy в Google Colaboratory?

Загрузить локальные файлы данных в Colaboratory


comment
@ Боб Смит ... вы можете мне помочь, пожалуйста   -  person Akhil    schedule 31.01.2018


Ответы (4)


Чтобы прочитать csv-файл с моего диска Google в совместной лаборатории, мне нужно было сделать следующие шаги:

1) Сначала мне нужно было авторизовать совместную работу для доступа к моему диску Google с PyDrive. Я использовал для этого их пример кода. (вставлено ниже)

2) Мне также нужно было войти на свой drive.google.com, чтобы найти целевой идентификатор файла, который я хотел загрузить. Я нашел это, щелкнув файл правой кнопкой мыши и скопировав общую ссылку для идентификатора. Идентификатор выглядит примерно так: '1BH-rffqv_1auzO7tdubfaOwXzf278vJK'

3) Затем я запустил Download.GetContentFile ('myName.csv') - введя желаемое имя (в вашем случае это xyz.csv)

Мне кажется, это работает!

Я использовал код, который они предоставили в своем примере:

# 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') 
person Cendria    schedule 01.02.2018

Хорошо, я почти уверен, что довольно поздно, но на всякий случай я бы хотел рассказать об этом. Я думаю, что самый простой способ сделать это -

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

Это сгенерирует ссылку, нажмите на нее и войдите в систему с помощью Google OAuth, вставьте ключ в ячейку colab, и вы подключены!

проверьте список доступных файлов на боковой панели слева и скопируйте путь к файлу, к которому вы хотите получить доступ. Прочтите его, как и любой другой файл.

person gavin    schedule 01.10.2018

Создание файла принимает тело файла в качестве первого параметра. Если вы проверите документацию для создания файла, вы увидите несколько полей можно заполнить. В приведенном ниже примере вы должны добавить их в file_metadata через запятую.

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()

Я предлагаю вам прочитать раздел документации загрузка файла, чтобы получить Лучшее представление о том, как работает загрузка и какие файлы на самом деле можно читать с диска Google. Я не уверен, что это даст вам доступ к Google colaborate

Возможное исправление для вашего кода.

Я не разработчик python, но думаю, вы можете установить свой заголовок, сделав это.

uploaded = drive.CreateFile({'xyz.csv': 'C:/Users/abc/Google Drive/def/xyz.csv',
                             'name': 'xyz.csv'})
person DaImTo    schedule 25.01.2018
comment
Я прочитал контент, связанный с ошибкой, когда попытался выполнить свой код выше. Вы говорите, что я не могу загружать файлы csv для использования в коде Python? Можете ли вы помочь и указать, где я сделал ошибку в приведенном выше коде? Приведенный выше код предназначен для загрузки файла csv (с диска Google) и назначения его переменной (в лаборатории Google). - person Akhil; 25.01.2018
comment
Таким способом должен был быть загружен текстовый файл ... Я изменил его, чтобы загрузить файл csv из папки. какие еще изменения требуются, помогите пожалуйста! - person Akhil; 25.01.2018
comment
Файл загружается .. но заголовок не задается .. почему? - person Akhil; 25.01.2018
comment
Задайте имя в метаданных, как показано выше. Вы можете загрузить любой файл на Google Диск, но Google Диск может отображать только некоторые типы файлов и может редактировать только некоторые типы файлов. И насколько мне известно, это не имеет ничего общего с Google Collaborate. - person DaImTo; 25.01.2018
comment
я думаю, что не могу донести свою точку зрения .... у меня нет проблем с google drive ... я уже довольно давно использую его как способ обмена файлами ... у меня уже есть csv файлы в google drive и для использования в R. Я хотел попробовать Python без установки какого-либо программного обеспечения, и я подумал, что совместная работа Google может помочь мне в этом. перед реализацией любого кода Python я должен назначить файлы, которые я буду использовать, соответствующим переменным ... эти файлы находятся на диске Google, и я могу загрузить их в Google для совместной работы, но не могу назвать их правильно !! позволь мне попробовать твой путь и посмотреть. Благодарность! - person Akhil; 25.01.2018
comment
Вы пробовали просто добавить имя в свой метод создания файла? 'имя': 'xyz.csv' - person DaImTo; 25.01.2018
comment
это был исключительно запутанный процесс (попытка импортировать файл из одного приложения Google в другое). оставив это сейчас, чтобы попробовать в другой день. Спасибо за вашу помощь! - person Akhil; 25.01.2018

Я думаю, что с этой командой все так просто

# Mount Google Drive
import os
from google.colab import drive

drive.mount('/content/drive')
!pwd
!ls

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

Для этого потребуется авторизация с вашим Google OAuth и создание ключа авторизации. вставьте ключ в ячейку колаба.

Пожалуйста, знайте !, иногда файл в каталоге google colab не обновляется или не похож на Google Drive, если вы удаляете или добавляете файлы на свой Google Drive.

person Yugo Gautomo    schedule 22.04.2020