#!/usr/bin/env python3 import json import re import os # 读取视觉设计岗位简历.json文件 json_file = '网页未导入数据/视觉设计产业/视觉设计岗位简历.json' mock_file = 'src/mocks/resumeInterviewMock.js' print("正在读取面试题数据...") with open(json_file, 'r', encoding='utf-8') as f: positions_data = json.load(f) # 创建岗位名称到面试题的映射 interview_questions_map = {} for position in positions_data: position_name = position.get("岗位名称", "") interview_content = position.get("面试题内容", "") if position_name and interview_content: interview_questions_map[position_name] = interview_content print(f"找到 {position_name} 的面试题") print(f"\n总共找到 {len(interview_questions_map)} 个岗位的面试题") # 读取resumeInterviewMock.js文件 print("\n正在读取 resumeInterviewMock.js...") with open(mock_file, 'r', encoding='utf-8') as f: content = f.read() # 创建备份 backup_file = f"{mock_file}.backup_interview_{os.popen('date +%Y%m%d_%H%M%S').read().strip()}" with open(backup_file, 'w', encoding='utf-8') as f: f.write(content) print(f"已创建备份文件: {backup_file}") # 更新面试题 update_count = 0 not_found = [] for position_name, interview_content in interview_questions_map.items(): # 转义特殊字符 escaped_name = re.escape(position_name) # 准备替换的面试题内容,需要转义反斜杠和反引号 escaped_content = interview_content.replace('\\', '\\\\').replace('`', '\\`') # 首先尝试查找并更新已存在的interviewQuestions字段 # 注意:"position"字段也可能带引号 pattern_existing = rf'''("position":\s*["']{escaped_name}["'].*?)"interviewQuestions":\s*`[^`]*?`''' if re.search(pattern_existing, content, re.DOTALL): # 如果已存在interviewQuestions字段,替换它 replacement = rf'\1"interviewQuestions": `{escaped_content}`' content = re.sub(pattern_existing, replacement, content, flags=re.DOTALL) update_count += 1 print(f"✓ 已更新 {position_name} 的面试题(替换已有)") else: # 如果不存在,尝试在content字段后添加 pattern_add = rf'''(position:\s*["']{escaped_name}["'].*?content:\s*{{[^}}]*?}})(\s*}})''' if re.search(pattern_add, content, re.DOTALL): # 在content字段后添加interviewQuestions replacement = rf'\1,\n interviewQuestions: `{escaped_content}`\2' content = re.sub(pattern_add, replacement, content, flags=re.DOTALL) update_count += 1 print(f"✓ 已更新 {position_name} 的面试题(新增字段)") else: not_found.append(position_name) # 写回文件 print(f"\n正在写入更新后的内容...") with open(mock_file, 'w', encoding='utf-8') as f: f.write(content) print(f"\n更新完成!") print(f"成功更新: {update_count} 个岗位") if not_found: print(f"未找到以下岗位: {', '.join(not_found)}") # 验证语法 print("\n验证文件语法...") result = os.popen(f'node -c {mock_file} 2>&1').read() if result: print(f"❌ 语法错误: {result}") else: print("✓ 语法验证通过")