Pythonの標準ライブラリでzip圧縮することができます。
※ここではデータ圧縮についてのzipを説明しています。複数の反復可能オブジェクトを同時に処理するzip関数、zip_longest関数はリンク先を参照してください。
zipfile
まずは圧縮対象のファイルを用意します。空のファイルでなければどのようなものでも構いませんので、下記ファイル名にて3つのファイルを作業ディレクトリに用意してください。
- python.py
- python.txt
- python.csv
zip圧縮を行う例は次の通りです。
import zipfile zipFile = zipfile.ZipFile('./compress_1.zip', 'w', zipfile.ZIP_STORED) zipFile.write('./python.py') zipFile.write('./python.txt') zipFile.write('./python.csv') zipFile.close() zipFile = zipfile.ZipFile('./compress_2.zip', 'w', zipfile.ZIP_DEFLATED) zipFile.write('./python.py') zipFile.write('./python.txt') zipFile.write('./python.csv') zipFile.close()
Pythonのzip圧縮には複数のモードがあります。3行目で指定されているZIP_STOREDは複数のファイルをまとめるのみで、ファイルサイズ自体の圧縮は行いません。9行目のZIP_DEFLATEDではファイルサイズも圧縮されます。
import zipfile zipFile = zipfile.ZipFile('./compress_1.zip', 'w', zipfile.ZIP_STORED) zipFile.write('./python.py') zipFile.write('./python.txt') zipFile.write('./python.csv') zipFile.close() zipFile = zipfile.ZipFile('./compress_2.zip', 'w', zipfile.ZIP_DEFLATED) zipFile.write('./python.py') zipFile.write('./python.txt') zipFile.write('./python.csv') zipFile.close()
下記ハイライト部分で圧縮対象ファイルの追加を行っています。追加後はZipFileインスタンスをクローズして終了となります。出力されたファイルのサイズを見ると、モードの差が良く分かると思いますので確認してみてください。
import zipfile zipFile = zipfile.ZipFile('./compress_1.zip', 'w', zipfile.ZIP_STORED) zipFile.write('./python.py') zipFile.write('./python.txt') zipFile.write('./python.csv') zipFile.close() zipFile = zipfile.ZipFile('./compress_2.zip', 'w', zipfile.ZIP_DEFLATED) zipFile.write('./python.py') zipFile.write('./python.txt') zipFile.write('./python.csv') zipFile.close()