在我们的一个 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文件。
底线:如前所述,它需要文件的名称,而不是文件的内容。
添加回答
举报
0/150
提交
取消
