如何将csv文件上传到Google驱动器并将其从中读取到python中

时间:2018-10-14 16:22:27

标签: python google-drive-api

我有一个已经上传了我的csv文件的google驱动器,共享该文件的链接为:

https://drive.google.com/open?id=1P_UYUsgvGXUhPCKQiZWlEAynKoeldWEi

我也知道驱动器的目录为:

C:/用户/.../Google云端硬盘/

请给我逐步指南,以实现如何直接从Google驱动器读取此特定的csv文件,而不是先将其下载到我的PC上,然后再读取为python。

我已经搜索了这个论坛,并尝试了一些给定的解决方案,例如:

How to upload csv file (and use it) from google drive into google colaboratory

它对我不起作用,导致以下错误:

      3 from pydrive.auth import GoogleAuth
      4 from pydrive.drive import GoogleDrive
----> 5 from google.colab import auth
      6 from oauth2client.client import GoogleCredentials
      7 

ModuleNotFoundError: No module named 'google.colab'

2 个答案:

答案 0 :(得分:0)

在该示例中,您不需要太多的东西就可以将文件上传到Google驱动器:

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive

# access the drive
gauth = GoogleAuth()
drive = GoogleDrive(gauth)

# the file you want to upload, here simple example
f = drive.CreateFile()
f.SetContentFile('document.txt')

# upload the file
f.Upload()
print('title: %s, mimeType: %s' % (f['title'], f['mimeType']))

# read all files, the newly uploaded file will be there
file_list = drive.ListFile({'q': "'root' in parents and trashed=false"}).GetList()
for file1 in file_list:
  print('title: %s, id: %s' % (file1['title'], file1['id']))

注意:在此示例中,我创建的是一个空文件,而不是现有文件,您只需对其进行更改即可从运行python文件的本地PC加载csv文件。

亲切的问候

答案 1 :(得分:0)

这是我用于存储在Google云端硬盘中的所有csv文件的一种简单方法。

首先导入必要的库,以方便您进行连接。

  !pip install -U -q PyDrive

    from google.colab import auth
    from pydrive.auth import GoogleAuth
    from pydrive.drive import GoogleDrive
    from oauth2client.client import GoogleCredentials

下一步是身份验证,并创建PyDrive客户端以连接到您的云端硬盘。

这应该为您提供一个连接到Google Cloud SDK的链接。

选择要访问的Google云端硬盘帐户。复制链接并将其粘贴到Colab Notebook的文本字段提示中。

auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

要获取文件,您需要在Google云端硬盘中文件的ID。

downloaded = drive.CreateFile({'id':'1P_UYUsgvGXUhPCKQiZWlEAynKoeldWEi'}) # replace the id with id of the file you want to access
downloaded.GetContentFile('file.csv')  

最后,您可以将文件读取为pandas数据框。

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