3

Pythonのtarfileモジュールは、または(またはエラーメッセージのみを出力する必要がある場合)に設定されていない限り、デフォルトで抽出中のエラーを無視します。errorlevel12debug1

mkdir /tmp/foo && sudo chown root /tmp/foo && chmod a-w /tmp/fooを実行し、を使用tarfileして.tar.gzファイルを抽出してみて/tmp/fooください。Pythonコードが例外をまったくスローしなかったことがわかります。まだ空のディレクトリであるファイルは抽出されませんでした。/tmp/foo

なぜこの振る舞い?このデフォルトの動作から誰/何が恩恵を受けますか?言い換えれば、tarfileを解凍するときのパーミッションエラーなど、誰/何を無視したいのでしょうか。

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 に答える