93 lines
3.3 KiB
Python
93 lines
3.3 KiB
Python
|
|
#!/usr/bin/env python3
|
||
|
|
# -*- coding: utf-8 -*-
|
||
|
|
|
||
|
|
import json
|
||
|
|
import re
|
||
|
|
import datetime
|
||
|
|
import shutil
|
||
|
|
|
||
|
|
def limit_automation_control_questions():
|
||
|
|
"""
|
||
|
|
限制自动化控制岗位群的面试题为前10个
|
||
|
|
"""
|
||
|
|
mock_file = "src/mocks/resumeInterviewMock.js"
|
||
|
|
|
||
|
|
# 备份文件
|
||
|
|
backup_path = f"{mock_file}.backup_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}"
|
||
|
|
shutil.copy(mock_file, backup_path)
|
||
|
|
print(f"✅ 已备份文件到:{backup_path}")
|
||
|
|
|
||
|
|
# 读取文件内容
|
||
|
|
with open(mock_file, 'r', encoding='utf-8') as f:
|
||
|
|
content = f.read()
|
||
|
|
|
||
|
|
# 查找自动化控制部分的industries数组
|
||
|
|
industries_match = re.search(r'const industries = (\[[\s\S]*?\]);', content)
|
||
|
|
|
||
|
|
if industries_match:
|
||
|
|
industries_str = industries_match.group(1)
|
||
|
|
|
||
|
|
# 解析为Python对象
|
||
|
|
try:
|
||
|
|
industries = json.loads(industries_str)
|
||
|
|
|
||
|
|
# 找到自动化控制岗位群
|
||
|
|
for industry in industries:
|
||
|
|
if industry.get("name") == "自动化控制":
|
||
|
|
# 获取questions数组
|
||
|
|
if industry.get("questions") and len(industry["questions"]) > 0:
|
||
|
|
question_obj = industry["questions"][0]
|
||
|
|
if "subQuestions" in question_obj and len(question_obj["subQuestions"]) > 10:
|
||
|
|
# 只保留前10个问题
|
||
|
|
original_count = len(question_obj["subQuestions"])
|
||
|
|
question_obj["subQuestions"] = question_obj["subQuestions"][:10]
|
||
|
|
print(f"✅ 自动化控制岗位群:从 {original_count} 个问题减少到 10 个")
|
||
|
|
|
||
|
|
# 将更新后的数据转回JSON字符串
|
||
|
|
new_industries_str = json.dumps(industries, ensure_ascii=False, indent=2)
|
||
|
|
|
||
|
|
# 替换原内容
|
||
|
|
new_content = content[:industries_match.start(1)] + new_industries_str + content[industries_match.end(1):]
|
||
|
|
|
||
|
|
# 写回文件
|
||
|
|
with open(mock_file, 'w', encoding='utf-8') as f:
|
||
|
|
f.write(new_content)
|
||
|
|
|
||
|
|
print("✅ 成功更新自动化控制岗位群的面试题数量")
|
||
|
|
|
||
|
|
# 验证更新后的数量
|
||
|
|
verify_questions_count(mock_file)
|
||
|
|
|
||
|
|
except json.JSONDecodeError as e:
|
||
|
|
print(f"❌ JSON解析错误: {e}")
|
||
|
|
else:
|
||
|
|
print("❌ 未找到industries数组")
|
||
|
|
|
||
|
|
def verify_questions_count(mock_file):
|
||
|
|
"""
|
||
|
|
验证各岗位群的面试题数量
|
||
|
|
"""
|
||
|
|
with open(mock_file, 'r', encoding='utf-8') as f:
|
||
|
|
content = f.read()
|
||
|
|
|
||
|
|
# 查找industries数组
|
||
|
|
industries_match = re.search(r'const industries = (\[[\s\S]*?\]);', content)
|
||
|
|
|
||
|
|
if industries_match:
|
||
|
|
industries_str = industries_match.group(1)
|
||
|
|
try:
|
||
|
|
industries = json.loads(industries_str)
|
||
|
|
|
||
|
|
print("\n📊 各岗位群面试题数量统计:")
|
||
|
|
for industry in industries:
|
||
|
|
name = industry.get("name", "")
|
||
|
|
questions = industry.get("questions", [])
|
||
|
|
if questions and len(questions) > 0:
|
||
|
|
sub_questions = questions[0].get("subQuestions", [])
|
||
|
|
print(f" - {name}: {len(sub_questions)}个问题")
|
||
|
|
|
||
|
|
except json.JSONDecodeError:
|
||
|
|
print("验证时JSON解析错误")
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
limit_automation_control_questions()
|