Files
ALL-teach_sys/frontend_视觉设计/import_interview_questions.py
KQL 38350dca36 更新12个教务系统并优化项目大小
主要更新:
- 更新所有12个产业的教务系统数据和功能
- 删除所有 node_modules 文件夹(节省3.7GB)
- 删除所有 .yoyo 缓存文件夹(节省1.2GB)
- 删除所有 dist 构建文件(节省55MB)

项目优化:
- 项目大小从 8.1GB 减少到 3.2GB(节省60%空间)
- 保留完整的源代码和配置文件
- .gitignore 已配置,防止再次提交大文件

启动脚本:
- start-industry.sh/bat/ps1 脚本会自动检测并安装依赖
- 首次启动时自动运行 npm install
- 支持单个或批量启动产业系统

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-17 14:36:25 +08:00

107 lines
4.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json
import re
def extract_questions_from_content(content):
"""从面试题内容中提取问题和答案"""
questions = []
# 按问题编号分割内容
pattern = r'\d+\.\s*问题[:]?\s*(.*?)(?=\d+\.\s*问题|$)'
matches = re.findall(pattern, content, re.DOTALL)
for i, match in enumerate(matches, 1):
# 提取问题和答案
q_a_pattern = r'^(.*?)\n\s*(?:参考回答[:]?|回答[:]?)\s*(.*?)$'
q_a_match = re.search(q_a_pattern, match.strip(), re.DOTALL)
if q_a_match:
question_text = q_a_match.group(1).strip()
answer_text = q_a_match.group(2).strip()
# 保留原始格式,包括换行和列表符号
questions.append({
"id": f"q{i}",
"question": question_text,
"answer": answer_text
})
return questions
def process_visual_design_data():
"""处理视觉设计岗位简历数据"""
# 读取视觉设计岗位简历.json
with open('网页未导入数据/视觉设计产业/视觉设计岗位简历.json', 'r', encoding='utf-8') as f:
data = json.load(f)
# 为每个岗位提取面试题
position_questions = {}
for item in data:
position_name = item.get('岗位名称', '')
interview_content = item.get('面试题内容', '')
if position_name and interview_content:
# 提取该岗位的面试题
questions = extract_questions_from_content(interview_content)
# 按类别分组(专业能力类、行为经历类、情景应变类)
grouped_questions = {
'专业能力类': [],
'行为经历类': [],
'情景应变类': []
}
# 根据内容判断类别
current_category = '专业能力类'
for q in questions:
question_text = q['question'].lower()
if '经历' in question_text or '分享' in question_text or '描述' in question_text or '项目' in question_text:
current_category = '行为经历类'
elif '如果' in question_text or '假设' in question_text or '应对' in question_text or '处理' in question_text:
current_category = '情景应变类'
grouped_questions[current_category].append(q)
position_questions[position_name] = {
'all': questions,
'grouped': grouped_questions
}
return position_questions
def update_resume_interview_mock(position_questions):
"""更新resumeInterviewMock.js文件"""
# 读取现有的mock文件
with open('src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f:
content = f.read()
# 为每个岗位更新questions字段
for position_name, questions_data in position_questions.items():
# 查找该岗位在mock文件中的位置
pattern = rf'name:\s*["\']({re.escape(position_name)})["\'].*?questions:\s*\[(.*?)\]'
# 构建新的questions数组
new_questions = json.dumps(questions_data['all'], ensure_ascii=False, indent=6)
# 替换questions内容
# 这里需要更精确的处理因为JS文件格式与JSON略有不同
# 为了保证数据完整性生成一个单独的JSON文件供手动整合
output = {}
for position_name, questions_data in position_questions.items():
output[position_name] = questions_data['all']
with open('visual_design_interview_questions.json', 'w', encoding='utf-8') as f:
json.dump(output, f, ensure_ascii=False, indent=2)
print(f"已生成visual_design_interview_questions.json包含{len(output)}个岗位的面试题数据")
print("请手动将这些数据整合到resumeInterviewMock.js中对应岗位的questions字段")
if __name__ == '__main__':
position_questions = process_visual_design_data()
update_resume_interview_mock(position_questions)