上传到谷歌xlsx共享驱动器折叠

2024-05-23 16:32:34 发布

您现在位置:Python中文网/ 问答频道 /正文

{py>将文件上载到共享的目录中。如有任何帮助,将不胜感激。在

我的代码:

scope = ["https://spreadsheets.google.com/feeds",'https://www.googleapis.com/auth/spreadsheets',"https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive"]
os.chdir(sys.path[0])
creds = ServiceAccountCredentials.from_json_keyfile_name("client_secret1.json", scope)
client = gspread.authorize(creds)

DRIVE = build('drive', 'v3', http=creds.authorize(Http()))

files = DRIVE.files().list().execute().get('files', [])
for f in files:
    print(f['name'], f['mimeType'])


file_metadata = {'inventory': 'risk_pos.xlsx', 'parents': ['XXXXXXXXXXXXXXXX']}
media = MediaFileUpload('risk_pos.xlsx', mimetype='application/vnd.ms-excel')
files = DRIVE.files().create(body=file_metadata, supportsTeamDrives=True, media_body=media, fields='id').execute()

错误:

^{pr2}$

编辑:

我现在没有错误。我刚刚去掉了'parents': ['XXXXXXXXXXXXXXXX']周围的括号 但我在驱动器上看不到文件。但每次我运行这个过程,似乎都会有新的东西出现。一个名为untitled...的文件,如下所示,您可以看到文件的数量在增加。但驱动器中没有untitled...个文件。在

 JRACMB-MahfoudD:market_risk delalma$ python3 risk_pos3.py 
 Untitled application/vnd.ms-excel
 Untitled application/vnd.ms-excel
 Untitled application/vnd.ms-excel
 Market_data application/vnd.google-apps.spreadsheet
 Market_data_volume application/vnd.google-apps.spreadsheet
 Getting started application/pdf
JRACMB-MahfoudD:market_risk delalma$ python3 risk_pos3.py 
Untitled application/vnd.ms-excel
 Untitled application/vnd.ms-excel
 Untitled application/vnd.ms-excel
 Untitled application/vnd.ms-excel
 Market_data application/vnd.google-apps.spreadsheet
 Market_data_volume application/vnd.google-apps.spreadsheet
 Getting started application/pdf
 JRACMB-MahfoudD:market_risk delalma$ python3 risk_pos3.py 
 Untitled application/vnd.ms-excel
 Untitled application/vnd.ms-excel
 Untitled application/vnd.ms-excel
 Untitled application/vnd.ms-excel
 Untitled application/vnd.ms-excel
 Market_data application/vnd.google-apps.spreadsheet
 Market_data_volume application/vnd.google-apps.spreadsheet
 Getting started application/pdf

Tags: apps文件pyhttpsdataapplicationgooglefiles
1条回答
网友
1楼 · 发布于 2024-05-23 16:32:34

服务帐户很棘手。如果上传没有错误,那么它可能被上传了,问题是它被上传到了哪里?在

服务帐户不是你,它是一个虚拟用户,有自己的驱动器帐户。您可能已将文件上载到服务帐户驱动器帐户。我要做的第一件事就是文件.list那你能看看文件吗?在

问题是你说你在请求中使用了父母。这意味着您在服务帐户上创建了一个新文件夹并正在使用它,或者您已经在您的个人驱动器帐户上共享了一个文件夹并试图上载到该文件夹。任何一种方式文件.list这将帮助你找出文件在哪里,如果服务帐户上载它有权访问它将是最好的最简单的方法找到文件。在

无标题

文件分两部分上传。首先是包含文件名等内容的元数据,其次是文件本身的实际数据。你的问题是你没有上传元数据。在

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()
print 'File ID: %s' % file.get('id')

您可能需要阅读managing uploads

至于总是创建一个新的文件,这是合乎逻辑的,因为你正在发送文件.创建然后总是会创建一个新文件,如果你想让它重写一个现有的文件,那么你需要这样做文件.update在

相关问题 更多 >