gpt4 book ai didi

python-pptx - 为什么将演示文稿保存到类似文件的对象会产生空白演示文稿?

转载 作者:行者123 更新时间:2023-12-04 03:56:48 25 4
gpt4 key购买 nike

作为对 this answer 的回复对于我之前的一个问题,我编写了以下短程序来尝试重现该问题。

from pptx import Presentation
from io import BytesIO

p = Presentation()
slide = p.slides.add_slide(p.slide_layouts[0])
slide.shapes[0].text = 'asdf'

p.save('test.pptx')

out = BytesIO()
p.save(out)

out_file = open('bytes_test.pptx', 'wb', buffering=0)
out_file.write(out.read())
out_file.close()

这产生了两个 pptx 文件。

第一个 test.pptx 包含一个带有“标题幻灯片”布局的幻灯片,并包含字符串“asdf”。文件大小为 28 KB。

第二个,bytes_test.pptx,当在 PowerPoint 中打开时,只显示一个大的灰色框,上面写着“点击添加第一张幻灯片”。文件大小为 0。

使用 Anaconda Python 3.6.1 和 python-pptx 0.6.6 在 Windows 10 上运行

为什么会发生这种情况?

最佳答案

嗯,我能想到一些事情,这可能需要一些来回。

首先,我会尝试使用 out.getvalue()而不是 out.read() .这就是我一直这样做的方式,其记录的行为是获取流的全部内容。

如果这不起作用,我会添加 out.flush()out.seek(0)之前out.read()称呼。 BytesIO是一个缓冲输出流,并且它可能在 read() 之前没有将某些缓冲数据写入流中称呼。另外,我希望 read()从当前光标位置开始工作,即 seek(0)调用将重置为文件的开头。

让我们知道您对此的看法,我们将从那里开始。

关于python-pptx - 为什么将演示文稿保存到类似文件的对象会产生空白演示文稿?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46981529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com