Pythonに、さまざまなアーカイブを抽出できるモジュールはありますか? zip、tar.bz2、tar.z、rarなどを抽出する必要があります。現在、アーカイブ タイプの検出を手動で行う必要があり、また、すべてのアーカイブの抽出を作成する必要があるようです。
純粋なPythonが推奨されます。
Pythonに、さまざまなアーカイブを抽出できるモジュールはありますか? zip、tar.bz2、tar.z、rarなどを抽出する必要があります。現在、アーカイブ タイプの検出を手動で行う必要があり、また、すべてのアーカイブの抽出を作成する必要があるようです。
純粋なPythonが推奨されます。
パツールをチェックしてください。それがどれほどうまく機能するかは証明できませんが、いくつかのフォーマットでは外部アプリケーションに依存していますが、それに基づいた他のモジュールがいくつかあります。
patool は、7z (.7z)、ACE (.ace)、ADF (.adf)、ALZIP (.alz)、APE (.ape)、AR (.a)、ARC (.arc)、ARJ (.arj)、 BZIP2 (.bz2)、CAB (.cab)、COMPRESS (.Z)、CPIO (.cpio)、DEB (.deb)、DMS (.dms)、FLAC (.flac)、GZIP (.gz)、LRZIP ( .lrz)、LZH (.lha、.lzh)、LZIP (.lz)、LZMA (.lzma)、LZOP (.lzo)、RPM (.rpm)、RAR (.rar)、RZIP (.rz)、SHN (.shn)、TAR (.tar)、XZ (.xz)、ZIP (.zip、.jar)、および ZOO (.zoo) 形式。これらのアーカイブ形式を処理するヘルパー アプリケーションに依存しています (たとえば、BZIP2 アーカイブの bzip2)。
3.2 以降、アーカイブ機能shutil
が追加されているようですが、これまでのところ gziptar、bztar、tar、および zip のみがサポートされています。
独自のハンドラーを追加できますshutil.register_archive_format()
-この方法では、拡張機能を手動で検出する必要はありません...ただし、抽出を自分で定義する必要があります。
標準ライブラリには、圧縮されたアーカイブを操作するためのモジュールzlib
、gzip
、bz2
、zipfile
およびが既にあります。tarfile
rar アーカイブの場合、zipfile と同様のインターフェイスを持ち、python 2 および 3 で動作するpypi の rarfile モジュールがあります。