本プログラムは、「フィルタまとめ」パッケージの更新作業を効率化するためのPythonベースのGUIツールです。
NicoCache_nlディレクトリから選択したファイル・フォルダをNicoCache_nl other内のtest_nlFiltersフォルダにコピーし、その後test_nlFiltersフォルダを7z形式でアーカイブ化します。
- 言語: Python 3.x
- GUIライブラリ: Tkinter
- 外部ライブラリ:
shutil
(ファイル・フォルダ操作)os
(パス操作)json
(設定ファイルの読み書き)py7zr
(7zアーカイブ作成)tkinter.filedialog
(ファイルエクスプローラー)
- ファイル名:
filter_matome_config.json
- 内容:
source_dir
: コピー元のデフォルトディレクトリ(初期値:"C:\NicoCache_nl"
)dest_dir
: コピー先のデフォルトディレクトリ(初期値:"C:\NicoCache_nl other"
)selected_files
: 選択されたファイル・フォルダのリスト(初期値:[]
)
- 保存場所: プログラム実行ディレクトリ内
- サンプル:
{ "source_dir": "C:\\NicoCache_nl", "dest_dir": "C:\\NicoCache_nl other", "selected_files": [] }
以下のコンポーネントを配置:
- ソースディレクトリ入力フィールド
- デフォルト値:
C:\NicoCache_nl
- 隣に「参照」ボタンを配置し、フォルダ選択ダイアログを表示。
- デフォルト値:
- 出力先ディレクトリ入力フィールド
- デフォルト値:
C:\NicoCache_nl other
- 隣に「参照」ボタンを配置し、フォルダ選択ダイアログを表示。
- デフォルト値:
- ファイル選択エリア
- コピー元のファイル・フォルダを選択するためのリストボックス。
- 「ファイル選択」ボタンで複数選択可能なファイルエクスプローラーを起動。
- 選択されたファイル・フォルダをリストボックスに表示。
- 設定保存ボタン
- 設定を保存。
- 実行ボタン
- コピーおよびアーカイブ処理を開始。
- キャンセルボタン
- 実行中の処理を中断(未実装時は無効化)。
- 終了ボタン
- プログラムを終了。
- ステータスバー(追加機能)
- 処理の進捗状況やエラーメッセージを表示。
- 必要なライブラリを自動インストール
- 起動時、このプログラムに必要なライブラリがインストールされていない場合、自動的にインストール。
- 設定の読み込み
- 起動時に
filter_matome_config.json
を読み込み、フィールドに反映。 - ファイルが存在しない場合はデフォルト値を使用し、初回保存。
- 起動時に
- ファイル選択
- ユーザーがソースディレクトリからコピーしたいファイル・フォルダを選択。
- コピー処理
- 選択されたファイル・フォルダを
dest_dir\test_nlFilters
に上書きコピー。 - フォルダが存在しない場合は新規作成。
- 下位階層も含めてコピー。
- 選択されたファイル・フォルダを
- アーカイブ処理
dest_dir\test_nlFilters
を7z形式で圧縮。- 出力ファイル名:
dest_dir\test_nlFilters.7z
。 - 既存の同名ファイルがあれば上書き。
- 設定の保存
- 処理完了後、入力されたディレクトリパスと選択されたファイル・フォルダを
filter_matome_config.json
に保存。
- 処理完了後、入力されたディレクトリパスと選択されたファイル・フォルダを
- ソースディレクトリまたは出力先ディレクトリが存在しない場合、エラーメッセージをステータスバーに表示。
- ファイル選択が空の場合、「ファイルを選択してください」と警告。
- 7zアーカイブ作成に失敗した場合、エラーメッセージを表示。
- 処理の開始・終了時刻やエラー内容を
filter_matome_log.txt
に記録。 - サンプルログ:
2025-03-10 10:00:00 - 処理開始
2025-03-10 10:00:05 - コピー完了: 3ファイル, 2フォルダ
2025-03-10 10:00:07 - アーカイブ完了: test_nlFilters.7z
- コピーおよびアーカイブ処理の進捗をGUI上で視覚的に表示。
-
Python 3.xをインストール。
-
必要なライブラリをインストール: pip install py7zr
-
プログラムファイルを任意のディレクトリに配置。
-
初回起動時に
filter_matome_config.json
が自動生成。
- プログラムを起動。
- ソースディレクトリと出力先ディレクトリを確認・必要に応じて変更。
- 「ファイル選択」ボタンでコピーしたいファイル・フォルダを選択。
- 「実行」ボタンを押して処理開始。
- 処理完了後、
test_nlFilters.7z
が出力先ディレクトリに生成されることを確認。 - 「終了」ボタンでプログラムを閉じる。
- ディレクトリパスに日本語や特殊文字が含まれる場合、エンコーディングエラーを防ぐため適切な処理を追加。
- 処理中にプログラムを強制終了すると中途半端なファイルが残る可能性あり。
- 大量のファイルを扱う場合、メモリ使用量に注意。