#!/usr/bin/env python3 import json import re import os from datetime import datetime print("正在更新化工岗位的修改版简历...") # 修改版简历文件夹路径 modified_folder = '网页未导入数据/化工产业/化工修改版简历' # 读取所有修改版简历文件 modified_resumes = {} for filename in os.listdir(modified_folder): if filename.endswith('.md'): position_name = filename.replace('.md', '') file_path = os.path.join(modified_folder, filename) with open(file_path, 'r', encoding='utf-8') as f: content = f.read() modified_resumes[position_name] = content print(f"读取修改版简历: {position_name}") print(f"\n共读取 {len(modified_resumes)} 份修改版简历") # 读取现有mock文件 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_modified_{timestamp}' with open(backup_file, 'w', encoding='utf-8') as f: f.write(content) print(f"已创建备份: {backup_file}") # 更新每个岗位的修改版简历 updated_count = 0 for position_name, modified_content in modified_resumes.items(): # 转义特殊字符 escaped_content = (modified_content .replace('\\', '\\\\') .replace('"', '\\"') .replace('\n', '\\n') .replace('\r', '\\r') .replace('\t', '\\t')) # 查找并替换对应岗位的modified字段 # 使用更精确的正则表达式来匹配岗位 pattern = rf'("id":\s*"[^"]*",\s*"position":\s*"{re.escape(position_name)}"[^}}]*?"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_name} 的修改版简历") else: # 尝试另一种模式(可能岗位名称有差异) # 查找类似的岗位名称 pattern2 = rf'("position":\s*"[^"]*{re.escape(position_name.replace("专员", "").replace("工程师", ""))}[^"]*"[^}}]*?"content":\s*{{[^}}]*?"modified":\s*)"[^"]*"' new_content = re.sub(pattern2, replacement_func, content, count=1, flags=re.DOTALL) if new_content != content: content = new_content updated_count += 1 print(f"✓ 已更新类似岗位 {position_name} 的修改版简历") # 保存更新后的文件 if updated_count > 0: with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f: f.write(content) print(f"\n✅ 成功更新了 {updated_count} 个岗位的修改版简历") # 验证语法 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("✓ 语法检查通过") # 显示更新结果 print("\n=== 更新结果 ===") print(f"已更新岗位:") for position_name in modified_resumes.keys(): if position_name in content: print(f" ✓ {position_name}") 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}")