使用 Python 将 xlsx 文档添加到 Google Drive 共享文件夹
Add xlsx documents to Google Drive shared folder using Python
我可以使用 Python 将 CSV 添加到共享的 google 驱动器文件夹,但我很困惑要在我的脚本中更改哪些内容以允许 excel 文档.这是我的 CSV 代码。
def publish_to_drive(folder_id, path_to_file, filename):
SCOPES = ['https://www.googleapis.com/auth/drive']
SERVICE_ACCOUNT_FILE = 'keys.json'
credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)
service = discovery.build('drive', 'v3', credentials=credentials)
file_metadata = {
'name': filename,
'parents': [folder_id],
'mimeType': 'text/csv'
}
media_body = MediaFileUpload(path_to_file, mimetype='text/csv',
resumable=True)
resp = service.files().create(body=file_metadata, media_body=media_body,supportsAllDrives=True).execute()
我意识到 mimetypes 需要更改,但我不确定它们需要更改为什么。我试过各种,但没能找到合适的。
使用正确的 mimetypes 我在尝试打开 excel 文件时得到以下信息:
如果在 text/csv
文件类型上使用函数没有问题,那么我相信您只需要将 mimetype
从 text/csv
更新为 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.
我在下面添加了一些 resources/links,列出了其他 mime 类型,如果您也需要您的函数来处理它们。
要真正支持多种 MIME 类型,您需要动态识别每个文件类型的 mimetype
。您可以通过以下任一方式完成:
- 简单的字符串操作(如果您看到一个模式)或对每个
mimetype
您想要支持的条件语句(都不推荐)
- 或者为了普遍性,比如this。
资源:
我可以使用 Python 将 CSV 添加到共享的 google 驱动器文件夹,但我很困惑要在我的脚本中更改哪些内容以允许 excel 文档.这是我的 CSV 代码。
def publish_to_drive(folder_id, path_to_file, filename):
SCOPES = ['https://www.googleapis.com/auth/drive']
SERVICE_ACCOUNT_FILE = 'keys.json'
credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)
service = discovery.build('drive', 'v3', credentials=credentials)
file_metadata = {
'name': filename,
'parents': [folder_id],
'mimeType': 'text/csv'
}
media_body = MediaFileUpload(path_to_file, mimetype='text/csv',
resumable=True)
resp = service.files().create(body=file_metadata, media_body=media_body,supportsAllDrives=True).execute()
我意识到 mimetypes 需要更改,但我不确定它们需要更改为什么。我试过各种,但没能找到合适的。
使用正确的 mimetypes 我在尝试打开 excel 文件时得到以下信息:
如果在 text/csv
文件类型上使用函数没有问题,那么我相信您只需要将 mimetype
从 text/csv
更新为 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.
我在下面添加了一些 resources/links,列出了其他 mime 类型,如果您也需要您的函数来处理它们。
要真正支持多种 MIME 类型,您需要动态识别每个文件类型的 mimetype
。您可以通过以下任一方式完成:
- 简单的字符串操作(如果您看到一个模式)或对每个
mimetype
您想要支持的条件语句(都不推荐) - 或者为了普遍性,比如this。