Raimondo Giammanco added the comment: SilentGhost, thank you for your reply but I am probably missing something with it. Maybe there is some misunderstanding because of my unclear report. Please let me sum up my point and excuse some repetitiveness
>From the documentation of .writestr: ``If given, compress_type overrides the value given for the compression parameter to the constructor for the new entry`` I believed to understand that .writestr would have used the same compression_type passed creating the `z' instance. So, having already passed ZIP_DEFLATED to the constructor, in my opinion, passing it again would have been an useless repetition. However, as per your suggestion,I tried to explicitly pass ZIP_DEFLATED to .writestr too: from zipfile import ZipFile, ZIP_DEFLATED document = '/tmp/example.odt' S2b, R2b = 'SUBST'.encode(), 'REPLACEMENT'.encode() with ZipFile(document,'a', ZIP_DEFLATED) as z: xmlString = z.read('content.xml') xmlString = xmlString.replace(S2b, R2b) z.writestr('content.xml', xmlString, ZIP_DEFLATED) but to no avail: with and without passing ZIP_DEFLATED to .writestr the odt documents lose the feature explained in my first post AFAICT, the only way to keep a fully functional odt document is not to compress it (no ZIP_DEFLATED at all), as cited in my previous post with ZipFile(document,'a') as z: xmlString = z.read('content.xml') xmlString = xmlString.replace(S2b, R2b) z.writestr('content.xml', xmlString) ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue21685> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com