python-pptx icon indicating copy to clipboard operation
python-pptx copied to clipboard

Opening a 'file like' presentation does not work

Open bquandt opened this issue 10 months ago • 2 comments

As show in : https://python-pptx.readthedocs.io/en/latest/user/presentations.html#opening-a-file-like-presentation

If you try the demo code as is for 'file like' objects, you can't open the pptx, you get the below type message (something with zipfile processing...)

But if you do the x = Presentation("actual.pptx") the file opens and processes just fine

Bottom line: any variant on this (fails) f = open('foobar.pptx') prs = Presentation(f) f.close()

Environment is python3 (Linux)

Traceback (most recent call last): File "/home/quandt/Desktop/devel/photobooth/api/t.py", line 12, in prs = Presentation(f) File "/home/quandt/Desktop/devel/photobooth/api/env/lib/python3.9/site-packages/pptx/api.py", line 31, in Presentation presentation_part = Package.open(pptx).main_document_part File "/home/quandt/Desktop/devel/photobooth/api/env/lib/python3.9/site-packages/pptx/opc/package.py", line 82, in open return cls(pkg_file)._load() File "/home/quandt/Desktop/devel/photobooth/api/env/lib/python3.9/site-packages/pptx/opc/package.py", line 160, in _load pkg_xml_rels, parts = _PackageLoader.load(self._pkg_file, cast("Package", self)) File "/home/quandt/Desktop/devel/photobooth/api/env/lib/python3.9/site-packages/pptx/opc/package.py", line 190, in load return cls(pkg_file, package)._load() File "/home/quandt/Desktop/devel/photobooth/api/env/lib/python3.9/site-packages/pptx/opc/package.py", line 194, in _load parts, xml_rels = self._parts, self._xml_rels File "/home/quandt/Desktop/devel/photobooth/api/env/lib/python3.9/site-packages/pptx/util.py", line 191, in get value = self._fget(obj) File "/home/quandt/Desktop/devel/photobooth/api/env/lib/python3.9/site-packages/pptx/opc/package.py", line 222, in _parts content_types = self._content_types File "/home/quandt/Desktop/devel/photobooth/api/env/lib/python3.9/site-packages/pptx/util.py", line 191, in get value = self._fget(obj) File "/home/quandt/Desktop/devel/photobooth/api/env/lib/python3.9/site-packages/pptx/opc/package.py", line 207, in _content_types return _ContentTypeMap.from_xml(self._package_reader[CONTENT_TYPES_URI]) File "/home/quandt/Desktop/devel/photobooth/api/env/lib/python3.9/site-packages/pptx/opc/serialized.py", line 38, in getitem return self._blob_reader[pack_uri] File "/home/quandt/Desktop/devel/photobooth/api/env/lib/python3.9/site-packages/pptx/opc/serialized.py", line 187, in getitem if pack_uri not in self._blobs: File "/home/quandt/Desktop/devel/photobooth/api/env/lib/python3.9/site-packages/pptx/util.py", line 191, in get value = self._fget(obj) File "/home/quandt/Desktop/devel/photobooth/api/env/lib/python3.9/site-packages/pptx/opc/serialized.py", line 194, in _blobs with zipfile.ZipFile(self._pkg_file, "r") as z: File "/usr/local/lib/python3.9/zipfile.py", line 1266, in init self._RealGetContents() File "/usr/local/lib/python3.9/zipfile.py", line 1333, in _RealGetContents raise BadZipFile("File is not a zip file") zipfile.BadZipFile: File is not a zip file

bquandt avatar Mar 19 '25 01:03 bquandt