#!/usr/bin/env python3 import json import re import os from datetime import datetime print("正在修复EHS岗位简历匹配错误...") # 读取现有文件 with open('src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f: content = f.read() # 备份 timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') backup_file = f'src/mocks/resumeInterviewMock.js.backup_fix_ehs_{timestamp}' with open(backup_file, 'w', encoding='utf-8') as f: f.write(content) print(f"已创建备份: {backup_file}") # 定义正确的EHS岗位映射 ehs_mapping = { "EHS专员": "网页未导入数据/化工产业/化工修改版简历/EHS专员.md", "EHS安全工程师": "网页未导入数据/化工产业/化工修改版简历/EHS安全工程师.md", "EHS安全工程师助理": "网页未导入数据/化工产业/化工修改版简历/EHS安全工程师助理.md" } # 读取正确的简历文件 correct_resumes = {} for position, file_path in ehs_mapping.items(): if os.path.exists(file_path): with open(file_path, 'r', encoding='utf-8') as f: correct_resumes[position] = f.read() print(f"读取正确简历: {position}") else: print(f"⚠️ 文件不存在: {file_path}") # 更新每个EHS岗位的modified字段 updated_count = 0 for position, resume_content in correct_resumes.items(): # 转义特殊字符 escaped_content = (resume_content .replace('\\', '\\\\') .replace('"', '\\"') .replace('\n', '\\n') .replace('\r', '\\r') .replace('\t', '\\t')) # 精确匹配岗位名称并更新modified字段 pattern = rf'("position":\s*"{re.escape(position)}"[^}}]*?"content":\s*\{{[^}}]*?"modified":\s*)"[^"]*?"' def replacement_func(match): return f'{match.group(1)}"{escaped_content}"' new_content = re.sub(pattern, replacement_func, content, flags=re.DOTALL) if new_content != content: content = new_content updated_count += 1 print(f"✓ 已修复 {position} 的简历内容") else: print(f"⚠️ 未找到 {position} 的匹配项") # 保存更新后的文件 if updated_count > 0: with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f: f.write(content) print(f"\n✅ 成功修复了 {updated_count} 个EHS岗位的简历") # 验证语法 import subprocess try: result = subprocess.run(['node', '-c', 'src/mocks/resumeInterviewMock.js'], capture_output=True, text=True, encoding='utf-8') if result.returncode == 0: print("✓ 语法检查通过") else: print(f"✗ 语法检查失败: {result.stderr}") # 恢复备份 with open(backup_file, 'r', encoding='utf-8') as f: backup_content = f.read() with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f: f.write(backup_content) print("已从备份恢复") except Exception as e: print(f"错误: {e}") print("\n=== 修复完成 ===") print("EHS专员 -> 对应 EHS专员.md") print("EHS安全工程师 -> 对应 EHS安全工程师.md") print("EHS安全工程师助理 -> 对应 EHS安全工程师助理.md")