Почему tarfile.extractall игнорирует ошибки по умолчанию? - PullRequest
3 голосов
/ 07 января 2010

Модуль Python tarfile игнорирует ошибки при извлечении по умолчанию , если errorlevel не установлен на 1 или 2 (или debug на 1 если должны быть напечатаны только сообщения об ошибках).

Попробуйте выполнить mkdir /tmp/foo && sudo chown root /tmp/foo && chmod a-w /tmp/foo и использовать tarfile для извлечения файла .tar.gz поверх /tmp/foo - вы увидите, что ваш код Python вообще не вызывает исключений. Файлы не были бы извлечены из /tmp/foo, который по-прежнему является пустым каталогом.

Почему это поведение? Кто / что выигрывает от такого поведения по умолчанию ? Другими словами, кто и что хотел бы игнорировать, скажем, ошибки прав доступа при распаковке tar-файла?

1 Ответ

2 голосов
/ 07 января 2010

FWIW, это неприятное поведение будет изменено в Python 2.7 и 3.2. http://svn.python.org/view?view=rev&revision=76780 Очевидно, что причина игнорирования ошибок раньше была больше похожа на GNU tar, который игнорирует ошибки.

...