python

#html-to-escape:複数ファイル処理
# -*- coding: utf-8 -*-
import os
import shutil
import codecs

def remove_bom(input_file, output_file):
    with open(input_file, 'rb') as fin:
        content = fin.read()
        encoding = 'utf-8-sig' if content.startswith(codecs.BOM_UTF8) else 'utf-8'
    
    with codecs.open(input_file, 'r', encoding=encoding) as fin:
        content = fin.read()
    
    with codecs.open(output_file, 'w', encoding='utf-8') as fout:
        fout.write(content)

def escape_special_chars(input_str):
    escape_dict = {'<': '&lt;', '>': '&gt;'}
    escaped_str = input_str.translate(str.maketrans(escape_dict))
    return escaped_str

# 入力ディレクトリと出力ディレクトリのパスを指定する
input_directory = 'code-html'
output_directory = 'escape'

# 出力ディレクトリが存在しない場合は作成する
if not os.path.exists(output_directory):
    os.makedirs(output_directory)

# 入力ディレクトリ内のファイルを処理して出力ディレクトリにコピーする
for file_name in os.listdir(input_directory):
    input_file_path = os.path.join(input_directory, file_name)
    output_file_path = os.path.join(output_directory, 'escape-' + file_name)
    
    # BOMを削除してファイルをコピーする
    shutil.copy(input_file_path, output_file_path)
    
    # 特殊文字をエスケープしてファイルに書き込む
    with codecs.open(output_file_path, 'r', encoding='utf-8') as f:
        input_data = f.read()
    escaped_data = escape_special_chars(input_data)
    with codecs.open(output_file_path, 'w', encoding='utf-8') as f:
        f.write(escaped_data)

print(' '<'を'&lt;'に、'>'を'&gt;' にエスケープしてファイルに書き込みました。')
print(f"escaped_file has been generated and saved to {output_directory}")