New submission from Domenico Ragusa <domenicorag...@gmail.com>:
ZipFile seems to support Pathlike objects pretty well, except in ZipFile.writestr. For example: >>> a = ZipFile(Path('test.zip'), 'w') # this works ok >>> a.write(Path('./foo.jpeg'), arcname=PurePath('/some/thing.jpeg')) # this >>> works as well >>> a.writestr(PurePath('/test.txt'), 'idk') # this doesn't Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python3.8/zipfile.py", line 1788, in writestr zinfo = ZipInfo(filename=zinfo_or_arcname, File "/usr/lib/python3.8/zipfile.py", line 349, in __init__ null_byte = filename.find(chr(0)) AttributeError: 'PurePosixPath' object has no attribute 'find' I think it would be more consistent if it accepted any kind of paths, it would suffice to call os.fspath in ZipInfo.__init__ when the filename is a Pathlike-object, it's just 2 lines (+ tests, of course). Can I go ahead and prepare a patch for this? ---------- components: Library (Lib) messages: 368098 nosy: d.ragusa priority: normal severity: normal status: open title: add support for os.Pathlike filenames in zipfile.ZipFile.writestr type: enhancement versions: Python 3.9 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue40506> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com