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

2024-04-25 22:47:13 发布

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

在我们的一个S3存储桶中,有一个.docx文件,其中包含邮件合并字段

我想做的是直接从bucket中读取它,而不需要先在本地下载它

通常,我可以通过使用以下代码打开文件并查看其中的邮件合并字段:

from mailmerge import MailMerge
document = MailMerge(r'C:\Users\User\Desktop\MailMergeFile.docx') # Trying to get a variable to pass in here
print(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 error

contents

但是,当我尝试将contents变量传递给Mailmerge函数时,我得到了另一个错误:

document = MailMerge(contents)
print(document.get_merge_fields())

我得到的错误是: ValueError: embedded null character


Tags: 文件to方法fieldsget方式contents邮件

热门问题