前の記事:横書き原稿を縦書き原稿にする際の年号表記変換スクリプト - adbird(広告鳥) 備忘録 と同じく、今度は年月の置換pythonスクリプト。
ChatGPT様々である。
import re import shutil # 数字を漢数字に変換する辞書(1〜31) kanji_nums = { i: ( "十" if i == 10 else "十" + "一二三四五六七八九"[i - 11] if 11 <= i <= 19 else "二十" if i == 20 else "二十" + "一二三四五六七八九"[i - 21] if 21 <= i <= 29 else "三十" if i == 30 else "三十一" if i == 31 else "一二三四五六七八九"[i - 1] ) for i in range(1, 32) } input_file = "input.txt" backup_file = "input.txt.bak" # バックアップ作成 shutil.copyfile(input_file, backup_file) # ファイル読み込み with open(input_file, "r", encoding="utf-8") as f: text = f.read() # 月の変換(12→1の順) for i in range(12, 0, -1): pattern = fr"(?<!\d){i}月" replacement = f"{kanji_nums[i]}月" text = re.sub(pattern, replacement, text) # 日の変換(31→1の順) for i in range(31, 0, -1): pattern = fr"(?<!\d){i}日" replacement = f"{kanji_nums[i]}日" text = re.sub(pattern, replacement, text) # 上書き保存 with open(input_file, "w", encoding="utf-8") as f: f.write(text) print("変換完了(input.txt 上書き済、バックアップ: input.txt.bak)")