все Python 3zipfileфункция
zipfile.is_zipfile()
архивы ZIP
Проверяет, похож ли файл (путь или файловый объект) на ZIP-архив, по записи в его конце.
Синтаксис
zipfile.is_zipfile(filename)
Смотрит только на служебную запись в конце файла, а не на расширение и не на начало: True вернётся и для .docx, .xlsx, .jar, .whl (это ZIP внутри), и для файла с мусором перед архивом — так устроены самораспаковывающиеся архивы. Целостность содержимого не проверяется: битые данные всплывут только при чтении. Для несуществующего пути возвращает False, а не бросает исключение.
Примеры
import io, zipfile
buf = io.BytesIO()
with zipfile.ZipFile(buf, 'w') as z:
z.writestr('a.txt', '1')
with open('odd.bin', 'wb') as f:
f.write(b'JUNK' * 10 + buf.getvalue())
print(zipfile.is_zipfile('odd.bin')) # → True — мусор в начале не мешает
print(zipfile.is_zipfile('missing.zip')) # → False
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности