python 3.7 zipfile.extractall
создает исключение, когда любое имя файла в zip-архиве содержит нераспознанный символ, например,
UnicodeEncodeError: 'latin-1' codec can't encode character '\u2014' in position 127: ordinal not in range(256)
Это происходит в _extract_member
, в частности:
with self.open(member, pwd=pwd) as source, \
open(targetpath, "wb") as target:
shutil.copyfileobj(source, target)
По крайней мере в Ubuntu 18.x командная строка unzip
обычно не жалуется.
try...except
не вариант, так как распаковка останавливается в точке исключения.
Это лучший способ обойти это, чтобы использовать extract в al oop и выполнить исправление имени файла? Другим вариантом является использование выноски оболочки для распаковки, но это не pythoni c.