-1

我的代码中有一些情节,我希望将它们保存为来自 AWS 的 S3 存储中的 Pdf。

4

1 回答 1

0

您必须使用 BytesIO 转换所有内容。您可以使用 pp.savefig() 或 pp.savefig(fig) 在循环中添加任意数量的图。我假设您已经配置了凭证以在 AWS 中进行身份验证。

import io
import boto3
from datetime import datetime
from matplotlib.backends.backend_pdf import PdfPages
from matplotlib import pyplot as plt

with io.BytesIO() as output:
    with PdfPages(output) as pp:
        fig, ax = plt.subplots(figsize=(12, 6))
        plt.plot([1,2,3,4,5,6],[1,2,3,4,5,6])
        pp.savefig()
    data = output.getvalue()
    
my_bucket = 'my-buketname'
s3 = boto3.resource('s3')
dir = 'my-dir-name'
file = dir + 'test.pdf'
s3.Bucket(my_bucket).put_object(Key=file, Body=data)
于 2021-02-15T10:35:39.823 回答