Python 3.12+tarfileисключение
tarfile.AbsolutePathError
исключения
Исключение фильтра распаковки: член архива имеет абсолютный путь, который нельзя сделать относительным.
Синтаксис
except tarfile.AbsolutePathError:
На Linux и macOS вы его почти не увидите: фильтры 'data' и 'tar' молча срезают ведущий '/' и распаковывают '/etc/x' в 'etc/x' внутри целевой папки. Исключение остаётся для путей, абсолютных и после срезания, — например 'C:/x' на Windows. Подкласс FilterError.
Примеры
import tarfile
m = tarfile.TarInfo('/etc/app.conf')
print(tarfile.data_filter(m, 'out').name) # → etc/app.conf — '/' срезан
err = tarfile.AbsolutePathError(tarfile.TarInfo('C:/x'))
print(err) # → member 'C:/x' has an absolute path
print(issubclass(tarfile.AbsolutePathError, tarfile.FilterError)) # → True
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности