为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python 的 S3 存储桶中打开.docx文件 (Boto3)

在 Python 的 S3 存储桶中打开.docx文件 (Boto3)

FFIVE 2022-09-20 17:40:14
在我们的一个 S3 存储桶中,我们有一个.docx文件,其中包含邮件合并字段。我试图做的是直接从存储桶中直接读取它,而无需先在本地下载它!通常,我可以打开一个文件,并通过使用以下代码查看其中的邮件合并字段:from mailmerge import MailMergedocument = MailMerge(r'C:\Users\User\Desktop\MailMergeFile.docx') # Trying to get a variable to pass in hereprint(document.get_merge_fields())如上所示,我试图做的是以一种可以将对象传递给MailMerge方法的方式获取对象,就好像我在本地机器上传递一条路径一样。我所寻找的做到这一点的方法已经无法奏效。fileobj = s3.get_object(    Bucket='bucketname',    Key='folder/mailmergefile.docx'    ) word_file = fileobj['Body'].read()contents = word_file.decode('ISO-8859-1') # can't use utf-8 as that gives encoding errorcontents但是,当我尝试将变量传递给 Mailmerge 函数时,我得到了另一个错误:contentsdocument = MailMerge(contents)print(document.get_merge_fields())我得到的错误是:ValueError: embedded null character
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

我假设你正在使用文档邮件合并 ·搜狐.

文档非常稀疏,但是显示 ,这表明它需要文件的名称,而不是文件的“内容”。MailMerge('input.docx')

查看代码时,它似乎在调用库来打开zip文件。

底线:如前所述,它需要文件的名称,而不是文件的内容。


查看完整回答
反对 回复 2022-09-20
  • 1 回答
  • 0 关注
  • 155 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号