replace_recursive プログラム仕様

指定されたディレクトリツリー内のファイルを再帰的に処理し、特定の文字列置換とファイルコピーを行うスクリプト。

このスクリプトは、source_dir で指定されたディレクトリから target_dir へファイルをコピーします。 convert_file_extensions に含まれる拡張子を持つファイルに対しては、 replace_list に基づく正規表現置換を実行します。 exclude_list に含まれるファイルは置換処理をスキップし、そのままコピーされます。

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

web.replace_recursive.copy_file(source_file, target_file)[ソース]

ファイルをソースパスからターゲットパスへコピーします。

ターゲットディレクトリが存在しない場合は作成し、 ファイルのメタデータも保持してコピーします。

パラメータ:
  • source_file (str) -- コピー元のファイルパス。

  • target_file (str) -- コピー先のファイルパス。

戻り値:

なし

戻り値の型:

None

web.replace_recursive.detect_encoding(file_path)[ソース]

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

chardetライブラリを使用して、ファイルのバイト列からエンコーディングを推測します。

パラメータ:

file_path (str) -- エンコーディングを検出するファイルのパス。

戻り値:

検出されたエンコーディング名(例: 'utf-8', 'EUC-JP')。

戻り値の型:

str

web.replace_recursive.extract_filename(file_path)[ソース]

ファイルパスからファイル名を抽出します。

パラメータ:

file_path (str) -- ファイルのパス。

戻り値:

抽出されたファイル名。

戻り値の型:

str

web.replace_recursive.main()[ソース]

スクリプトの主要な実行ロジックをカプセル化します。

定義済みの source_dir, target_dir, replace_list, convert_file_extensions を使用して process_directory 関数を呼び出します。

戻り値:

なし

戻り値の型:

None

web.replace_recursive.process_directory(source_dir, target_dir, replace_list, file_extensions)[ソース]

ソースディレクトリツリーを走査し、ファイルをターゲットディレクトリにコピーしながら、 指定された拡張子のファイルに対して文字列置換を実行します。

os.walk を使用してディレクトリを再帰的に走査します。 file_extensions に含まれるファイルは replace_strings_in_file で処理され、 exclude_list に含まれるファイルは置換をスキップしてコピーされます。 その他のファイルは単純にコピーされます。

パラメータ:
  • source_dir (str) -- 処理対象のソースディレクトリパス。

  • target_dir (str) -- 処理結果を保存するターゲットディレクトリパス。

  • replace_list (list[tuple[str, str]]) -- (正規表現パターン, 置換文字列)のリスト。

  • file_extensions (list[str]) -- 文字列置換を行うファイル拡張子のリスト(例: ['.html', '.css'])。

戻り値:

なし

戻り値の型:

None

web.replace_recursive.read_file_with_detected_encoding(file_path)[ソース]

ファイルのエンコーディングを自動検出してファイルを読み込みます。

ファイルが存在しない場合や読み込みに失敗した場合はFalseを返します。

パラメータ:

file_path (str) -- 読み込むファイルのパス。

戻り値:

ファイルの内容、または読み込み失敗時にはFalse。

戻り値の型:

str or bool

web.replace_recursive.regex_replace(text, replace_list)[ソース]

テキスト内の指定されたパターンを正規表現に基づいて置換します。

replace_listに含まれる各(パターン, 置換文字列)のペアを使用して、 入力テキストに対して正規表現置換を順番に適用します。

パラメータ:
  • text (str) -- 置換対象の文字列。

  • replace_list (list[tuple[str, str]]) -- (正規表現パターン, 置換文字列)のリスト。

戻り値:

置換後の文字列。

戻り値の型:

str

web.replace_recursive.replace_strings_in_file(source_file, target_file, replace_list)[ソース]

ソースファイルを読み込み、指定された置換リストに基づいて文字列を置換し、結果をターゲットファイルに保存します。

detect_encoding を使用してエンコーディングを検出し、ファイルを読み込みます。 置換は正規表現で行われます。ターゲットファイルのディレクトリが存在しない場合は作成されます。

パラメータ:
  • source_file (str) -- 読み込み元のファイルパス。

  • target_file (str) -- 置換結果を書き込むファイルパス。

  • replace_list (list[tuple[str, str]]) -- (正規表現パターン, 置換文字列)のリスト。

戻り値:

ファイルの処理が成功した場合はTrue、読み込みに失敗した場合はFalse。

戻り値の型:

bool