replace プログラム仕様

テキストファイル内の特定のパターンを正規表現に基づいて置換するスクリプト。

詳細説明: 本スクリプトは、入力ファイル、出力ファイル、および置換ルールを定義するINIファイルを指定して、 テキストの自動修正を行います。`replace.ini`(デフォルト)とユーザー指定のINIファイル の両方からルールを読み込み、ユーザー定義ルールがデフォルトルールよりも優先されます。 ファイルエンコーディングは自動的に検出されます。

関連リンク: replace.py 技術ドキュメント

converter.replace.apply_replacements(text, replace_list)[ソース]

テキストに正規表現による置換リストを適用する。

詳細説明: 指定された置換リスト(パターンと置換文字列のペア)を順にテキストに適用します。 `re.IGNORECASE`と`re.MULTILINE`フラグが使用され、大文字小文字を区別せず、 複数行にわたるマッチングを可能にします。置換中にエラーが発生した場合はプログラムを終了します。

パラメータ:
  • text -- str: 置換を適用する元のテキスト。

  • replace_list -- list[tuple[str, str]]: (パターン, 置換文字列)のタプルのリスト。

戻り値:

str: 全ての置換が適用された後のテキスト。

converter.replace.detect_encoding(file_path)[ソース]

指定されたファイルの文字エンコーディングを検出する。

詳細説明: ファイルをバイナリモードで読み込み、`chardet`ライブラリを使用して文字エンコーディングを推測します。

パラメータ:

file_path -- str: 検出対象のファイルのパス。

戻り値:

str: 検出された文字エンコーディングの文字列(例: 'utf-8', 'Shift_JIS')。

converter.replace.generate_output_path(input_path)[ソース]

入力ファイルパスに基づいてデフォルトの出力ファイルパスを生成する。

詳細説明: 入力ファイルのファイル名を基に、拡張子の前に`-converted`を追加した新しいファイルパスを生成します。

パラメータ:

input_path -- str: 入力ファイルのパス。

戻り値:

str: 自動生成された出力ファイルのパス。

converter.replace.load_replace_dict(ini_path)[ソース]

INIファイルから置換ルールを読み込み、辞書として返す。

詳細説明: INIファイルを1行ずつ読み込み、`#`で始まるコメント行や`=`を含まない行を無視します。 キーと値は`=`で区切られ、キーが引用符で囲まれている場合は引用符を取り除きます。 値の前後の空白は保持されます。

パラメータ:

ini_path -- str: 置換ルールが記述されたINIファイルのパス。

戻り値:

dict[str, str]: キー(置換パターン)と値(置換文字列)の辞書。

converter.replace.main()[ソース]

プログラムのエントリポイント。コマンドライン引数を解析し、テキストの置換処理を実行する。

詳細説明: `argparse`を使用して入力ファイル、出力ファイル、置換ルールファイルを指定します。 入力ファイルのエンコーディングを検出し、置換ルールを読み込み、テキストに適用し、 結果を新しいファイルに書き込みます。ユーザー定義の置換ルールはデフォルトルールに優先します。

converter.replace.terminate()[ソース]

プログラムを終了する前にユーザー入力を待機する。

詳細説明: エラー発生時や処理完了時に、ユーザーがメッセージを確認し、 Enterキーを押すまでプログラムの終了を一時停止します。