如何关闭演示文稿而不将其保存在Python pptx中

2024-05-19 11:04:03 发布

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

我必须使用循环打开多个演示文稿,获取一些数据并关闭它

我似乎找不到一种方法来关闭python pptx中的ppt文件,而不保存/覆盖它

我使用以下命令打开ppt文件

pptfile = addressList[xyz]
prs = Presentation(pptfile)
slides = prs.slides

但我找不到一种不保存就关闭演示文稿(prs)以加载下一个ppt的方法

我有一份临时工作,工作内容如下

prs.save(r"C:\Users\prashant.kumar\temp.pptx")

因为prs.save关闭了ppt,所以它可以正常工作,但是我想要一种更好的方法来关闭ppt,而不创建临时ppt文件

是否有python-pptxPresentation属性,我可以使用它关闭ppt而不保存


Tags: 文件数据方法命令内容savepresentation文稿
3条回答

python-pptx在您处理文件时不会保持文件处于打开状态。当你打电话时:

prs = Presentation(pptfile)

文件pptfile在返回Presentation对象之前被打开、读入内存并关闭。因此,您可以只使用prs引用获取所需内容,然后放弃它进行垃圾收集,就像Python中的任何其他对象一样

您在问题中没有提到由于文件处于打开状态而导致某些操作不被允许的问题,因此我假设您认为这将是一个问题,并且实际上没有遇到问题

你可以试试这个:

import os

os.system("TASKKILL /F /IM powerpnt.exe")

Is there an attribute of Presentation for python-pptx which I can use to close the ppt without saving?

只是。。。停止使用它?pptx似乎没有__del__,因此如果您只是停止使用它而不保存,它就不应该保存

如果出于某种原因,这不起作用(尽管这会很奇怪,因为我也不知道它会保存修改后的演示文稿),您可以给pptx一个文件对象,加载演示文稿后可以关闭该对象:

pptfile = addressList[xyz]
with open(pptfile, 'rb') as f:
    prs = Presentation(f)
slides = prs.slides

它不应该能够修改文件,即使它想修改

相关问题 更多 >

    热门问题