我认为我无法理解我在做错什么。我已连接到Google Drive API,现在我想阅读我的Google Drive上的一些文档,目的是分析这些csv文件中包含的数据。
这是我的代码:
from __future__ import print_function
import pickle
import os.path
from httplib2 import Http
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/Users/emmanuelsibanda/credentials.json"
# If modifying these scopes, delete the file token.pickle.
SCOPES = ['https://www.googleapis.com/auth/drive.metadata.readonly']
creds = None
if os.path.exists('token.pickle'):
with open('token.pickle', 'rb') as token:
creds = pickle.load(token)
# If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file(
'credentials.json', SCOPES)
creds = flow.run_local_server()
# Save the credentials for the next run
with open('token.pickle', 'wb') as token:
pickle.dump(creds, token)
service = build('drive', 'v3', credentials=creds)
def gdrive_download(file_id):
request = service.files().get(fileId=file_id)
return request.execute()
a = gdrive_download('19sPsANUblhXkb3nZVy4PMrfUyOSoF_uQ')
只需重申一下,我想下载一些csv文件,然后继续读取文件。
答案 0 :(得分:1)
在云端硬盘中,文件的元数据与其内容分开。您要求使用#include<limits.h>
int cube(int num)
{
int count,temp,i,add=1;
temp=num;
while(temp>0)
{
temp=temp/10;
count++;
}
printf("%d\n" , count);
for(i=1;i<=count;i++)
{
if (INT_MAX/num < add) {
printf("overflow\n");
}
add=add*num;
}
return add;
}
范围,这并不奇怪,它仅允许访问元数据。您对metadata.readonly
的呼叫将获取元数据。
要获取内容,首先需要选择一个更宽松的范围。然后,您将获取内容。如何执行取决于文件是二进制文件还是Google文档(例如电子表格)。
可以通过将files().get
添加到URL来下载二进制文件。
可以通过在网址中添加alt=media
来导出Google文件。
有关详细信息和代码示例,请参见https://developers.google.com/drive/api/v3/manage-downloads。