Python入門【zipファイル・tarファイルの圧縮・展開】

Python zip

こんにちは、ミナトです。

「Pythonでzipファイルの圧縮・展開はどうやるの?」

というあなたのために今回はPythonでzipファイル・tarファイルを圧縮・展開する方法について解説します。

初心者にも分かりやすく解説していますので、ぜひご確認ください。

Pythonでzipファイルの圧縮・展開はどうやるの?
zipfileモジュールを利用すると簡単にzipファイルの圧縮・展開ができるで!
今回は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でシェアしていただけると嬉しいです。