#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 清理修改版简历中的删除线内容和加粗符号 - 删除~~删除线内容~~(包括符号和内容) - 保留**加粗内容**(删除符号,保留内容) """ import re import shutil from datetime import datetime def clean_resume_formatting(): """清理修改版简历格式""" file_path = "src/mocks/resumeInterviewMock.js" # 创建备份 timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") backup_path = f"{file_path}.backup_clean_formatting_{timestamp}" shutil.copy2(file_path, backup_path) print(f"📦 已创建备份: {backup_path}") try: # 读取文件 with open(file_path, 'r', encoding='utf-8') as f: content = f.read() print("🚀 开始清理修改版简历格式...") # 统计原始符号数量 strikethrough_count = content.count('~~') bold_count = content.count('**') print(f"📊 发现删除线符号: {strikethrough_count//2} 对") print(f"📊 发现加粗符号: {bold_count//2} 对") # 定义清理函数 def clean_content_field(match): """清理content字段中的modified内容""" full_match = match.group(0) modified_content = match.group(1) # 1. 删除删除线内容(包括~~符号和其中的内容~~) cleaned = re.sub(r'~~[^~]*~~', '', modified_content) # 2. 删除加粗符号(保留**中的内容**) cleaned = re.sub(r'\*\*([^*]*)\*\*', r'\1', cleaned) # 3. 清理多余的空格和标点符号 # 处理可能产生的多余逗号、分号等 cleaned = re.sub(r'[,、;]\s*[,、;]', ',', cleaned) cleaned = re.sub(r'[,、;]\s*$', '', cleaned, flags=re.MULTILINE) cleaned = re.sub(r'^\s*[,、;]', '', cleaned, flags=re.MULTILINE) # 4. 清理多余的空白行 cleaned = re.sub(r'\n\s*\n\s*\n', '\n\n', cleaned) return f'"modified": "{cleaned}"' # 使用正则表达式找到所有modified字段并清理 modified_pattern = r'"modified":\s*"([^"]*(?:\\.[^"]*)*)"' processed_content = re.sub(modified_pattern, clean_content_field, content, flags=re.DOTALL) # 统计处理后的符号数量 final_strikethrough = processed_content.count('~~') final_bold = processed_content.count('**') # 写入文件 with open(file_path, 'w', encoding='utf-8') as f: f.write(processed_content) print(f"📊 处理统计:") print(f" - 删除线符号: {strikethrough_count//2} → {final_strikethrough//2}") print(f" - 加粗符号: {bold_count//2} → {final_bold//2}") print(f"✅ 已更新 {file_path}") # 验证JS语法 import subprocess try: result = subprocess.run(['node', '-c', file_path], capture_output=True, text=True) if result.returncode == 0: print("✅ JavaScript语法验证通过") else: print(f"❌ JavaScript语法验证失败: {result.stderr}") # 恢复备份 shutil.copy2(backup_path, file_path) print("🔄 已恢复原始文件") except Exception as e: print(f"⚠️ 无法验证JavaScript语法: {e}") except Exception as e: print(f"❌ 处理失败: {e}") # 恢复备份 shutil.copy2(backup_path, file_path) print("🔄 已恢复原始文件") if __name__ == "__main__": print("🚀 开始清理修改版简历格式...") clean_resume_formatting() print("🎉 处理完成!")