Python 3.2+zipfileисключение
zipfile.BadZipFile
исключения
Исключение zipfile: файл не является ZIP-архивом или повреждён (например, не сошлась CRC при чтении).
Синтаксис
except zipfile.BadZipFile:
Наследник Exception, а не OSError: except OSError его не поймает, хотя ошибка про файл. Бросается и при открытии (нет записи конца архива), и позже — при read() члена с испорченными данными, так что одного try вокруг ZipFile(...) мало. Старое имя BadZipfile (со строчной f) — тот же класс, оставленный для совместимости. Отсутствующее имя внутри архива — это KeyError, а не BadZipFile.
Примеры
import zipfile
with open('fake.zip', 'w', encoding='utf-8') as f:
f.write('это не архив')
try:
zipfile.ZipFile('fake.zip')
except zipfile.BadZipFile as e:
print(e) # → File is not a zip file
print(issubclass(zipfile.BadZipFile, OSError)) # → False
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности