こんにちは、ミナトです。
「Pythonでzipファイルの圧縮・展開はどうやるの?」
というあなたのために今回はPythonでzipファイル・tarファイルを圧縮・展開する方法について解説します。
初心者にも分かりやすく解説していますので、ぜひご確認ください。


今回はPythonでのzipファイルとtarファイルを圧縮・展開について解説するな😆
- Pythonでzipファイルを圧縮・展開する方法を知りたい
- Pythonでtarファイルを圧縮・展開する方法を知りたい
- Pythonでプログラミングを学びたい初心者
zipファイル圧縮・展開
zipファイル圧縮
Pythonでzipファイルの圧縮・展開を行うにはzipfileモジュールを利用します。
以下のようにZipFileクラスのwrite()メソッドで対象のファイルを指定します。
以下の例では、sampleディレクトリ配下にあるsample.txtとsample2.txtまとめて圧縮し、sample.zipを作成しています。
import zipfile
with zipfile.ZipFile('sample.zip', 'w') as z:
z.write('sample/sample.txt')
z.write('sample/sample2.txt')
しかし、上記の方法だと対象のファイルを一つずつ指定しなければならず、多数のファイルがある場合や複数階層にファイルがある場合に非常に面倒です。
そこで、指定したディレクトリ配下をまとめて圧縮するにはglobモジュールと組み合わせて利用します。
以下の例では、sampleディレクトリ配下を再帰的に取得し、全てsample.zipに圧縮して保存しています。
import glob
import zipfile
with zipfile.ZipFile('sample.zip', 'w') as z:
for f in glob.glob('sample/**', recursive=True):
z.write(f)
zipファイル展開
zipファイルを展開するには、ZipFileクラスのextractall()メソッドを利用します。
extractall()メソッドの引数には展開先のパスを指定します。
import zipfile
with zipfile.ZipFile('sample.zip', 'r') as z:
z.extractall('extract_dir')
tarファイルの圧縮・展開
tarファイル圧縮
Pythonでtarファイルの圧縮・展開を行うにはtarfileモジュールを利用します。
以下のようにadd()メソッドで対象のディレクトリを指定します。
以下の例では、sampleディレクトリ配下にあるファイルひとまとめにして、sample.tarを作成しています。
import tarfile
with tarfile.open('sample.tar', 'w') as t:
t.add('sample')
さらに、ファイルサイズを圧縮するためには、ファイル名とモードにgzをつける必要があります。
import tarfile
with tarfile.open('sample.tar.gz', 'w:gz') as t:
t.add('sample')
tarファイル展開
tarファイルを展開するには、extractall()メソッドを利用します。
extractall()メソッドの引数には展開先のパスを指定します。
import tarfile
with tarfile.open('sample.tar.gz', 'r:gz') as t:
t.extractall('extract_dir')
まとめ
今回はPythonでzipファイル・tarファイルを圧縮・展開する方法について解説しました。
- zipファイルを圧縮・展開にはzipfileモジュールを利用する
- tarファイルを圧縮・展開にはtarfileモジュールを利用する
最後まで読んでいただき、ありがとうございます。
この記事が、「面白いな」、「勉強になったな」という方は、SNSでシェアしていただけると嬉しいです。