为什么tarfile.extractall默认忽略错误?

时间:2010-01-07 01:58:30

标签: python permissions tarfile

Python的tarfile模块在​​提取期间忽略错误默认,除非errorlevel设置为12(或{{1}如果只需要打印错误消息,则转到debug

尝试执行1并使用mkdir /tmp/foo && sudo chown root /tmp/foo && chmod a-w /tmp/footarfile上提取.tar.gz文件 - 您将看到您的Python代码完全没有例外。 not 的文件已经通过/tmp/foo提取,而/tmp/foo仍然是一个空目录。

为什么会这样?这种默认行为有哪些/有什么好处?换句话说,在解压缩tarfile时,只有谁/什么会想要忽略权限错误?

1 个答案:

答案 0 :(得分:2)

FWIW,这个讨厌的行为将在Python 2.7和3.2中改变。 http://svn.python.org/view?view=rev&revision=76780显然忽略之前错误的原因更像是GNU tar,它忽略了错误。