python

【python】zipファイルを解凍・圧縮する方法【→業務効率UP】

how to zip and unzip by python
プログラム女子
プログラム女子

職場で、ZIPファイルをやり取りすることが多いんだけど、数が多いから一気に解凍する方法ないのかな...

pythonの「zipfile」というライブラリを使えば、一気に解凍できるよ。
今回は、このライブラリを使って、zip解凍と圧縮する方法を紹介するね。

Tommy
Tommy

pythonでzipファイルを解凍・圧縮する概要

summary of zip and unzip

オフィス環境では書類などのサイズの大きいファイルはzipで圧縮されていることが多いです。

この圧縮ファイルを扱う為にはまずはファイルを解凍しなければなりませんが、圧縮ファイルの数が多い場合や、パスワードがかかっているとなると、手作業が多くなって業務効率が悪くなります。

この記事では、pythonを使ったzip圧縮方法と解凍方法を説明します。

pythonでzipファイルを解凍・圧縮する前提の環境

environment of zip and unzip

zipファイルを圧縮・解凍する前提の環境は、下の記事で説明している私の環境と同じ環境で確認しています。

【python】バージョン確認の方法【→プログラミング初心者向け】

レンタルサーバなどのLinuxサーバを使っている場合は、下の記事でプログラミングする環境の作り方を説明しています。

もし、まだプログラムする環境ができていない方は、先にこちらの記事を読んで、プログラミングできる環境をつくることをおすすめします。

レンタルサーバでプログラミングする方法【→レンタルサーバでできる!】

pythonでzipファイルを解凍・圧縮するサンプルプログラム

sample program of zip and unzip

ここでは、「zip解凍する関数」と「zip圧縮する2つの関数」を定義するプログラムを書き、それらの2つを実行するプログラムによって、zip解凍と圧縮する方法を説明します。

ライブラリをインポートする

まず初めに、必要なライブラリをインポートします。 zipファイルの扱いに必要なzipfileライブラリをインポートしています。

import zipfile

zipファイルを解凍する

次に、zipファイルを解凍する関数の定義して、zip解凍方する法を説明します。

現在実行しているpythonファイルのカレントディレクトリにある、zip_nameで指定されたzipファイルをextractall()を使って解凍します。

def decompress(zip_name):
    with zipfile.ZipFile('./' + zip_name) as zf:
        zf.extractall()

zipファイルを圧縮する

次に、zipファイルを圧縮する関数を定義して、zip圧縮する方法を説明します。

現在実行しているpythonファイルのカレントディレクトリにある、fileで指定されたzipファイルをwrite(()を使ってzipファイルに書き出します。

def compress(file):
    with zipfile.ZipFile('./' + file + '.zip', "w", zipfile.ZIP_DEFLATED) as zf:
        zf.write( file, file)

定義した関数の実行処理

ここでは、zipファイル名をtest.txt.zipと定義し、上記で定義した2つの関数の呼び出しを行います。

if __name__ == '__main__':
	zip_name = 'test.txt.zip'
	compress(zip_name)
	decompress(zip_name)

pythonで業務効率化するその他の方法

other way of business efficiency by python

pythonには、業務効率化できる手段がたくさんあります。 せっかくpythonプログラムの学習のですから、実務に生かせないと学習している効果も実感することができません。

プログラマーにとって、

  • 「人の役に立った時」
  • 「人に喜んでもらった時」

にそこ、プログラムをやっていてよかったと喜びを感じられるものです。

また、プログラムの効果を発揮できる身近な場所は「普段の業務」です。つまり、学習したプログラムで効率化できる可能性の一番の高い場所です。 そういう意味で、「普段の業務」を効率化しないと、もったいないです。

下記の記事に、普段オフィス環境で使われるツールを使って業務効率化できる方法をまとめていますので、ぜひ合わせて読んで取り組んでみてください。

【python】業務効率化の方法8選【→周りを出し抜く自動化】

-python
-, ,

Copyright© Tommy's blog , 2020 All Rights Reserved Powered by AFFINGER5.