This causes the zipfile module to also consider the character defined by
`os.altsep` (if there is one) to be a path separator and convert it to a
forward slash, as defined by the zip specification.
A logical no-op on all known platforms today as os.altsep is currently only set to a meaningful value on Windows (where it is "/").
# ZIP format specification.
if os.sep != "/" and os.sep in filename:
filename = filename.replace(os.sep, "/")
+ if os.altsep and os.altsep != "/" and os.altsep in filename:
+ filename = filename.replace(os.altsep, "/")
return filename
--- /dev/null
+When creating zip files using :mod:`zipfile`, ``os.altsep``, if not ``None``,
+will always be treated as a path separator even when it is not ``/``.
+Patch by Carey Metcalfe.