Python Glossary English

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Сообщить о неточности