Pythonでディレクトリごとzipで圧縮する方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonでディレクトリごとzipで圧縮する方法について現役エンジニアが解説しています。ディレクトリやファイルをzip化するにはshutilモジュールのmake_archiveメソッドを使います。ファイルやディレクトリの操作やzipなどの圧縮の処理が行えます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事が4,000以上あります。現役エンジニアの方はこちらをご覧ください。

Pythonでディレクトリごとzipで圧縮する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonでディレクトリごとzipで圧縮する方法について詳しく説明していくね!

大石ゆかり

お願いします!

この記事ではPythonでディレクトリごとzipで圧縮する方法について解説します。

shutilモジュールとは

shutilモジュールとはファイルやディレクトリの集まりに対して高水準の操作方法を提供するモジュールです。ファイルの削除やコピー、zip化などを行うことが可能です。個別のファイル操作についてはosモジュールを使用することができます。

shutilモジュールを利用したディレクトリの圧縮方法

shutilモジュールでディレクトリの圧縮を行う方法は以下の通りです。

import shutil

shutil.make_archive(zipの名前, 'zip'[, root_dir=zip化させたいディレクトリのパス])

shutilモジュールを利用するにはshutilをインポートする必要があります。shutilモジュールのmake_archive関数を使うことでzip化することが可能です。

第1引数にはzip化した際の名前を、第2引数には処理するアーカイブフォーマットを指定します。今回はzip化なので「zip」と設定しますがそれ以外にも「tar」を設定することもできます。ここまでは必須で設定する必要があります。

第3引数以降はzip化したいディレクトリのパスを指定できます。設定しない場合はカレントディレクトリをzip化します。

[PR] Pythonで挫折しない学習方法を動画で公開中

実際に書いてみよう

では実際にPythonのshutilモジュールを使ってzip化してみましょう

プログラムソースコード

import shutil

print(shutil.make_archive('zip_test', 'zip', root_dir='C:/PycharmProjects/Sample01/test'))

 

実行結果

C:\PycharmProjects\Sample01\zip_test.zip

今回はtestディレクトリをzip_test.zipという名前でzip化しようとしました。

出力結果はzip化されたファイルパスを出力してくれています。root_dirを設定していない場合はカレントディレクトリをzip化しようとします。

まとめ

この記事ではPythonのshutilパッケージを使ってディレクトリごとzipで圧縮する方法をについて解説しました。

zip化以外にもtar化する際にも使えますし、ファイルやディレクトリ操作を行えるのでshutilモジュールの使い方を覚えておくと非常に便利です。

監修してくれたメンター

メンターSさん

システムエンジニアとしてこれまで行政システムや医療用システムの保守、開発に携わりました。

JavaやPython、PHP、Kotlinなど様々な言語での開発経験があります。
TechAcademyではJavaコース、Pythonコース、AIコースなど7コースを担当しています。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。