Pythonを使ってフォルダをZIP形式で圧縮・解凍する方法

公開日:  

python


PythonでフォルダをZIPファイル(.zip)に圧縮する方法です。
また、ZIPファイルを解凍する方法についても記します。

環境

  • Windows 10
  • Python 3.6.2

ZIP形式に圧縮する

from shutil import make_archive

make_archive('data', 'zip', root_dir='./data')

shutilモジュールのmake_archiveを使用します。

  • 第一引数 には作成されるファイル名を拡張子を抜いて指定します。
  • 第二引数 には圧縮フォーマットを指定します。
    (上記の例では第一引数に'data'を指定し、第二引数に'zip'を指定しているので、作成されるファイルは data.zip となります)
  • root_dir には圧縮したいフォルダを指定します。

圧縮フォーマットはzipのほかに'tar', 'gztar', 'bztar', 'xztar'なども使えます。

ZIPファイルを解凍する

from shutil import unpack_archive

unpack_archive('./data.zip', extract_dir='./unpacked_data', format='zip')

shutilモジュールのunpack_archiveを使用します。

  • 第一引数 には解凍したいファイル名を指定します。
  • extract_dir には解凍先のフォルダ名を指定します。
  • format にはファイルのフォーマットを指定します。省略した場合はファイルの拡張子から判断してくれます。

おわりに

PythonにはzipfileというZIP形式のファイルを扱えるモジュールもあり、細かい使い方をしたければそちらを使うことになると思います。
単にフォルダを圧縮(またはファイルを解凍)したいだけであれば、今回紹介した方法がシンプルでよいと思います。



関連記事