1

大きなzipファイル(3.2G)を処理するためにzipfileを使用しています。私のコードはこのようなものです。

zfile = file('filename.zip')
f = zipfile.ZipFile(zfile, allowZip64=True)`

次に、BadZipfile("Truncated central directory") として発生するエラーがあります。

  1. 「zipfile.is_zipfile(zfile1) を印刷」すると、True になります。
  2. これはマルチディスクではなく、独立した zip ファイルであると確信しています。
  3. winrar などの他のソフトウェアを使用して解凍するとうまくいきます
4

1 に答える 1

0

ここで zipfile ライブラリの実装を確認してください。

http://fossies.org/linux/misc/Python-3.3.2.tar.gz:a/Python-3.3.2/Lib/zipfile.py

あなたが得ている例外がいつ発生するかに興味があります:

     sizeCentralDir = struct.calcsize(structCentralDir)
     if len(centdir) != sizeCentralDir:
           raise BadZipFile("Truncated central directory")

ウィキペディアで「中央ディレクトリ構造」とは何かを確認した後

http://en.wikipedia.org/wiki/Zip_%28file_format%29

問題は、アーカイブのサイズ/構造がライブラリでサポートされていないことだと思います。

于 2013-10-30T01:50:32.683 に答える