3

Python 的tarfile模块默认在提取过程中忽略错误,除非errorlevel设置为1or 2(或者如果只需要打印错误消息)debug1

尝试使用 amkdir /tmp/foo && sudo chown root /tmp/foo && chmod a-w /tmp/foo和 usingtarfile来提取一个 .tar.gz 文件/tmp/foo——你会看到你的 Python 代码根本没有抛出异常。文件不会被提取/tmp/foo,仍然是一个空目录。

为什么会有这种行为?谁/什么从这种默认行为中受益?换句话说,在解压缩 tar 文件时,谁/什么想要忽略权限错误?

4

1 回答 1

2

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

于 2010-01-07T02:46:50.010 回答