【Python】特定のファイルをアーカイブする
機能
例えば、以下のコマンドを実行するとinputフォルダ配下にあるテキストファイル(.txt)をzipファイルにまとめます。
サブフォルダも検索対象です。
python file2zip.py .txt input
サンプル動画
プログラム
#! Python3 # 機能 # 特定のファイルをアーカイブする # 使い方 # 1.Pythonを実行する # 実行コマンド # python file2zip.py キーワード 検索パス # python file2zip.py .txt input # python file2zip.py テスト input import os import sys import zipfile import datetime if len(sys.argv) != 3: sys.exit("使い方:python file2zip.py キーワード 検索パス") keyword = sys.argv[1] search_path = sys.argv[2] # ファイル名:検索パス_システム日付(yyyymmdd).zip sysdate = datetime.date.today().strftime("%Y%m%d") zip_file_name = "{}_{}.zip".format(os.path.basename(search_path), sysdate) print("Creating {}...".format(zip_file_name)) with zipfile.ZipFile(zip_file_name, "w") as zip_file: for folder_name, _, file_names in os.walk(search_path): # フォルダを追加する print("Adding files in {}...".format(folder_name)) zip_file.write(folder_name) for file_name in file_names: # キーワードが含まれないファイルは対象外 if keyword.lower() not in file_name.lower(): continue # ファイルを追加する print("Adding file {}...".format(file_name)) zip_file.write(os.path.join(folder_name, file_name))
使い方
- Pythonを実行する
コマンド
実行コマンド
python file2zip.py キーワード 検索パス python file2zip.py .txt input python file2zip.py テスト input
実行環境
プログラム実行時の環境は以下になります。
開発環境については以下を参考にして下さい。
プログラムのバッチ化については以下を参考にして下さい。
exeファイル
Python環境がなくても実行可能なexeファイルもあります。
とりあえず試してみたい方は以下からダウンロードして下さい。
実行方法
コマンドラインから以下のコマンドを実行して下さい。
file2zip.exe キーワード 検索パス file2zip.exe .txt input file2zip.exe テスト input
GitHub
今回使用したプログラムやテストデータはGitHubにアップロードしています。