我必須使用循環打開多個演示文稿,獲取一些數據并關閉它。我似乎找不到一種方法來關閉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
提交
取消