【Python】zipファイルの圧縮・解凍方法

  • 2019年7月9日
  • 2020年4月3日
  • Python

こんにちは!

皆さんはPythonを使ってzipファイルの圧縮・解凍をしたことがありますか?

大抵の人が、Pythonなどを使わずに、1つのファイルずつ圧縮・解凍をしていると思います。

しかし、Pythonを用いることによって、zipファイルに対して様々な操作を行うことができるようになるため、日々の業務の自動化などに役に立ちます。

そこで今回は 「zipfileモジュール」を用いたzipファイルの圧縮・解凍方法について説明していきます。


zipファイルへの圧縮

Pythonでzipファイルを扱うには、外部ライブラリのインストールは不要です。

標準ライブラリの「zipfileモジュール」を使用することで、簡単にzipファイルへの圧縮を行うことができます。


zipファイルへ圧縮する

それでは、zipファイルへの圧縮のサンプルプログラムを見てみましょう。

以下のプログラムは、「sample.py」を「test1.zip」へ圧縮するプログラムです。

import zipfile
with zipfile.ZipFile('test1.zip', 'w')as zf:
    zf.write('sample.py')

ファイルオープンモードに「w」を指定します。

このように、簡単に圧縮することができますね。

zipファイルにファイルを追加する

ファイルオープンモードに「a」を指定することで、既存のzipファイルにファイルを追加することができます。

以下のプログラムは、既存の「sample.zip」に「test2.py」を追加するプログラムです。

import zipfile
with zipfile.ZipFile('sample.zip', 'a')as zf:
    zf.write('test2.py')

この、既存のzipファイルに追加するという操作は、プログラムを用いないと、圧縮・解凍と同じように簡単にはできませんね

zipファイルの解凍

zipファイルの解凍には、圧縮の場合と同様に、「zipfileモジュール」を用います。


zipファイルを解凍する

ファイルオープンモードに「r」を指定して読み込みます。

以下のプログラムは、「sample.zip」を解凍するプログラムです。

import zipfile
with zipfile.ZipFile('sample.zip', 'r')as zf:
    zf.extractall()

上記のプログラムでは、sample.zipというzipファイルを、同じディレクトリ内に解凍しています。

解凍せずに中身を確認する

ファイルオープンモードに「r」を指定して、namelistメソッド用いることにより、解凍せずにzipファイルの中に何のファイルが圧縮されているかを確認することができます。

以下のプログラムは、「sample.zip」の中身を確認するプログラムです。

import zipfile
with zipfile.ZipFile('sample.zip', 'r')as zf:
    print(zf.namelist())

ファイルの名前は、リストで返されます。

この、解凍せずにzipファイルの中に何のファイルが圧縮されているかを確認するという操作も、プログラムを用いないと、圧縮・解凍と同じように簡単にはできませんね


まとめ

いかがでしたか?

zipファイルの圧縮・解凍方法について、理解できたでしょうか?

zipファイルの圧縮・解凍を行うには「zipfileモジュール」を使用することを学びました。

zipファイルの操作をPythonに任せると、いろいろなことができるようになります。

例えば、全てのzipファイルを解凍したり、解凍する場所を指定したり・・・etc

zipファイルの圧縮・解凍方法を応用すると、Pythonで様々な業務の効率化ができると思うので、ぜひ試してみてください!