如何从谷歌驱动器上传csv文件(并使用它)到google colaboratory

时间:2018-01-25 06:35:04

标签: python google-api google-drive-api google-api-python-client google-colaboratory

想要试用python,而google colaboratory 似乎是最简单的选择。我的谷歌驱动器中有一些文件,并希望将它们上传到google 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. 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",我想从文件夹" def"上传文件xyz.csv。 我可以上传文件,但是当我要求标题时,标题是"无标题"。 当我要求上传的文件的ID时,它每次都会更改,因此我无法使用该ID。

我如何阅读文件???并设置一个正确的文件名???

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

以下是我发现的一些其他链接..

How to import and read a shelve or Numpy file in Google Colaboratory?

Load local data files to Colaboratory

4 个答案:

答案 0 :(得分:15)

要从我的google驱动器中读取csv文件到colaboratory,我需要执行以下步骤:

1)我首先需要授权colaboratory使用PyDrive访问我的谷歌硬盘。我用它们的代码示例。 (粘贴在下面)

2)我还需要登录我的drive.google.com以查找我想下载的文件的目标ID。我通过右键单击文件并复制ID的共享链接找到了这个。 id看起来像这样:'1BH-rffqv_1auzO7tdubfaOwXzf278vJK'

3)然后我运行了downloads.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') 

答案 1 :(得分:0)

文件创建将文件正文作为其第一个参数。如果您查看file create的文档,则可以填写许多字段。在下面的示例中,您将它们添加到以逗号分隔的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()

我建议您阅读文档的file upload部分,以便更好地了解上传的工作原理以及实际可以从Google驱动器中读取哪些文件。我不确定这是否可以让您访问Google colaborate

可能修复您的代码。

我不是一个python dev,但我的猜测是你可以通过这样设置你的标题。

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

答案 2 :(得分:0)

好的,我可以肯定我来晚了,但是我想把它放在那里,以防万一。 我认为最简单的方法是

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

这将生成一个链接,单击该链接并使用Google OAuth登录,将密钥粘贴到colab单元中,您就可以连接了!

在左侧的边栏中签出可用文件列表,然后复制要访问的文件的路径。与其他任何文件一样,按需读取。

答案 3 :(得分:0)

我认为使用此命令就这么简单

# 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授权,并创建授权密钥。将密钥放入colab单元格。

请注意!,有时候,如果您在Google云端硬盘中删除或添加文件,则Google colab目录中的文件与Google云端硬盘不会更新或类似。