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

How to close the presentation without saving it in Python pptx

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

如果没有 saving/overwriting,我似乎找不到关闭 python pptx 中的 ppt 文件的方法。

我用下面的方式打开ppt文件

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

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

我有一个临时解决方法如下

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

由于 prs.save 关闭 ppt 它工作正常,但我想要一种更好的方法来关闭 ppt 而无需创建临时 ppt 文件。

python-pptx 是否有 Presentation 的属性,我可以使用它来关闭 ppt 而无需保存?

你可以试试这个:

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

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

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

prs = Presentation(pptfile)

文件 pptfile 打开,读入内存,然后关闭,所有这些都在返回 Presentation 对象之前。因此,您可以根据需要使用 prs 引用,然后放弃它进行垃圾回收,与 Python.

中的任何其他对象一样

你没有在你的问题中提到由于文件打开而不允许某些操作的问题,所以我假设你只是认为这将是一个问题并且实际上没有遇到过。