stmtkブログ

Python中心の技術ブログです。

【Python】特定の拡張子のファイルをアーカイブする

機能

特定の拡張子のファイルをアーカイブするPythonプログラムです。

例えば、以下のコマンドを実行するとテキストファイルのみをアーカイブします。

python file2zip.py input txt

実行前

実行後

サンプル動画

youtu.be

プログラム

#! Python3
# 機能
#  特定の拡張子のファイルをアーカイブする
# 使い方
#  1.Pythonを実行する
# 実行コマンド
#  python file2zip.py パス 拡張子
#  python file2zip.py input txt

import os
import sys
import zipfile

# 特定の拡張子のファイルをアーカイブする関数
def file2zip(path, extension):
    zip_file_name = os.path.basename(path) + ".zip"
    print("Creating {}...".format(zip_file_name))

    with zipfile.ZipFile(zip_file_name, "w") as zip_file:
        for folder_name, _, file_names in os.walk(path):
            print("Adding files in {}...".format(folder_name))
            zip_file.write(folder_name)

            for file_name in file_names:
                if file_name.lower().endswith(extension.lower()):
                    print("Adding file {}...".format(file_name))
                    zip_file.write(os.path.join(folder_name, file_name))


if len(sys.argv) != 3:
    sys.exit("使い方:python file2zip.py パス 拡張子")

file2zip(sys.argv[1], sys.argv[2])

使い方

  1. Pythonを実行する

実行コマンド

python file2zip.py パス 拡張子
python file2zip.py input txt

参考文献

www.oreilly.co.jp