我必须使用循环打开多个演示文稿,获取一些数据并关闭它。我似乎找不到一种方法来关闭python pptx中的ppt文件而不保存/覆盖它。我使用以下内容打开ppt文件pptfile = addressList[xyz]prs = Presentation(pptfile)slides = prs.slides但我找不到一种方法来关闭演示文稿(prs)而不保存,以便加载下一个ppt我有一个临时工作,如下所示prs.save(r"C:\Users\prashant.kumar\temp.pptx")由于关闭ppt,它工作正常,但我想要一个更好的方法来关闭ppt,而无需创建临时ppt文件。prs.save有没有一个属性,我可以用来关闭ppt而不保存?Presentationpython-pptx
3 回答
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
有没有python-pptx的Presention属性,我可以用来关闭ppt而不保存?
只。。。停止使用它?pptx似乎没有,所以如果你只是停止使用它而不保存它,它不应该保存。__del__
如果由于某种原因这不起作用(尽管这很奇怪,因为同样,我看不到它会保存修改后的演示文稿的位置),您可以为pptx提供一个文件对象,您可以在加载演示文稿后关闭它:
pptfile = addressList[xyz]
with open(pptfile, 'rb') as f:
prs = Presentation(f)
slides = prs.slides
它应该不能修改文件,即使它想要。
哔哔one
TA贡献1854条经验 获得超8个赞
python-pptx
在您处理文件时,不会将其保持打开状态。当您呼叫时:
prs = Presentation(pptfile)
文件被打开、读入内存和关闭,所有这些都是在返回对象之前完成的。因此,您可以将引用用于所需的任何内容,然后将其放弃用于垃圾回收,与Python中的任何其他对象相同。pptfile
Presentation
prs
您没有在问题中提到由于文件已打开而不允许某些操作的问题,因此我假设您只是认为这将是一个问题,但实际上并没有遇到问题。
添加回答
举报
0/150
提交
取消