Библиотека Python tarfile
не обнаруживает поврежденный tar.
user@host$ wc -c good.tar
143360 good.tar
user@host$ head -c 130000 good.tar > cut.tar
user@host$ tar -tf cut.tar
...
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
Очень хорошо, инструмент командной строки распознает неожиданный EOF.
user@host$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
>>> import tarfile
>>> tar=tarfile.open('cut.tar')
>>> tar.extractall()
Не хорошо. Библиотека Python декодирует файл, но не вызывает никаких исключений.
Как обнаружить неожиданный EOF с помощью библиотеки Python? Я хочу избежать модуля subprocess
.
Параметр errorlevel
не помогает. Я пробовал уровень ошибок = 1 и уровень ошибок = 2.