2016-11-08 5 views
1

zipFileライブラリで1.23 GBのzipファイルを解凍しようとしています。しかし、それは次のエラーを与える:内容を抽出しようとしているときに大きなファイルをzipfileで解凍する

zip_ref = zipfile.ZipFile(filepath, 'r') 
zip_ref.extractall(newPath) 

それはエラーを与える:

compression type 9 (deflate64) 

ここに私のコードです。

大きなzipファイルをPythonで解凍する方法はありますか?

答えて

0

これは、圧縮方法がzipfileモジュールに実装されていないために発生します。

問題に関するいくつかの議論はここにある:https://bugs.python.org/issue14313

修正ではなく、圧縮方法のサポートを追加するのでNotImplementedErrorを高めることでした。

推奨ソリューション:

  • 可能な場合は、標準のdeflateメソッドを使用してファイルを再圧縮。
  • unzipコマンドを呼び出すには、subprocessモジュールを使用してください(その圧縮方法をサポートしている場合、私は正直なところ、7-zipがこの方法をサポートしています)。
+0

私はこれをまっすぐにしましょう。このバグを修正する方法はありません。唯一の解決方法はファイルを再圧縮し、 'extract'の代わりに' subprocess'モジュールを 'unzip'コマンドで使用することです。 –

+0

はい、少なくともこれは当てはまりましたが、私は圧縮方法が追加されたと聞いていません。 zipアーカイブ形式ではプラグイン可能な圧縮方式がサポートされていることに注意してください。アーカイブ形式をサポートするライブラリがすべてのアルゴリズムをサポートしているわけではありません。 – Krumelur

+0

しかし、それは小さなファイルではなく、大きなファイルではなぜ機能しますか? –

関連する問題