Files
ALL-teach_sys/frontend_视觉设计/direct_update_questions.py
KQL cd2e307402 初始化12个产业教务系统项目
主要内容:
- 包含12个产业的完整教务系统前端代码
- 智能启动脚本 (start-industry.sh)
- 可视化产业导航页面 (index.html)
- 项目文档 (README.md)

优化内容:
- 删除所有node_modules和.yoyo文件夹,从7.5GB减少到2.7GB
- 添加.gitignore文件避免上传不必要的文件
- 自动依赖管理和智能启动系统

产业列表:
1. 文旅产业 (5150)
2. 智能制造 (5151)
3. 智能开发 (5152)
4. 财经商贸 (5153)
5. 视觉设计 (5154)
6. 交通物流 (5155)
7. 大健康 (5156)
8. 土木水利 (5157)
9. 食品产业 (5158)
10. 化工产业 (5159)
11. 能源产业 (5160)
12. 环保产业 (5161)

🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 14:14:14 +08:00

182 lines
6.3 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
import json
import os
from datetime import datetime
# 读取视觉设计岗位简历.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)
# 解析所有岗位的面试题
all_questions = {}
for position in positions_data:
position_name = position.get("岗位名称", "")
interview_content = position.get("面试题内容", "")
if position_name and interview_content:
questions = []
lines = interview_content.split('\n')
current_section = "专业能力类" # 默认分类
for line in lines:
line = line.strip()
# 识别大分类
if line.startswith('# '):
section_text = line[2:].strip()
if '专业' in section_text or '能力' in section_text:
current_section = "专业能力类"
elif '行为' in section_text or '经历' in section_text:
current_section = "行为经历类"
elif '情景' in section_text or '应变' in section_text:
current_section = "情景应变类"
else:
current_section = section_text
# 识别问题
elif line and line[0].isdigit() and '. 问题' in line:
parts = line.split('问题:', 1)
if len(parts) > 1:
question_text = parts[1].strip()
else:
parts = line.split('问题:', 1)
if len(parts) > 1:
question_text = parts[1].strip()
else:
continue
questions.append({
"question": question_text,
"section": current_section
})
all_questions[position_name] = questions
if questions:
print(f"解析 {position_name}{len(questions)} 个问题")
# 创建备份
backup_file = f"{mock_file}.backup_direct_{datetime.now().strftime('%Y%m%d_%H%M%S')}"
with open(mock_file, 'r', encoding='utf-8') as f:
original_content = f.read()
with open(backup_file, 'w', encoding='utf-8') as f:
f.write(original_content)
print(f"\n已创建备份:{backup_file}")
# 定义产业和岗位的映射
industry_map = {
"UI设计": "UI设计师",
"包装设计": "包装设计师",
"插画设计": "插画师",
"灯光": "影视灯光",
"动画设计": "动画师",
"后期特效": "特效设计师",
"剪辑": "剪辑师",
"品牌设计": "品牌视觉内容策划",
"平面设计": "平面设计师",
"三维设计": "3D建模师",
"摄影/摄像": "摄影师",
"室内设计": "室内设计师",
"调色": "调色师",
"新媒体运营": "新媒体运营专员",
"音频处理": "音效设计师",
"影视节目策划": "导演",
"直播": "直播助理"
}
# 更新面试题
print("\n开始更新面试题...")
content = original_content
update_count = 0
for industry_name, position_name in industry_map.items():
if position_name not in all_questions:
print(f"✗ 未找到 {position_name} 的面试题数据")
continue
questions = all_questions[position_name]
if not questions:
continue
# 按分类组织问题
sections = {}
for q in questions:
section = q['section']
if section not in sections:
sections[section] = []
sections[section].append(q['question'])
# 构建新的questions数组
new_questions = []
group_id = 1
for section_name, section_questions in sections.items():
if section_questions:
group = {
"id": f"group_q{group_id}",
"question": f"# {section_name}",
"subQuestions": []
}
for idx, q_text in enumerate(section_questions, 1):
group["subQuestions"].append({
"id": f"q{group_id}_{idx}",
"question": q_text,
"answer": "请根据您的实际经验和项目情况,结合专业知识进行回答。"
})
new_questions.append(group)
group_id += 1
# 生成JSON字符串
questions_json = json.dumps(new_questions, ensure_ascii=False, indent=6)
# 查找并替换
# 搜索产业名称
search_str = f'"name": "{industry_name}"'
if search_str in content:
# 找到产业位置
start_idx = content.find(search_str)
# 找到对应的questions字段
questions_start = content.find('"questions":', start_idx)
if questions_start > 0 and questions_start < start_idx + 2000: # 确保在同一产业内
# 找到questions数组的开始 [
array_start = content.find('[', questions_start)
if array_start > 0:
# 找到对应的结束 ]
bracket_count = 1
idx = array_start + 1
while idx < len(content) and bracket_count > 0:
if content[idx] == '[':
bracket_count += 1
elif content[idx] == ']':
bracket_count -= 1
idx += 1
if bracket_count == 0:
# 替换questions内容
content = content[:array_start] + questions_json + content[idx-1:]
update_count += 1
print(f"✓ 已更新 {industry_name} ({len(questions)} 个问题)")
# 写回文件
if update_count > 0:
print(f"\n正在写入文件...")
with open(mock_file, 'w', encoding='utf-8') as f:
f.write(content)
# 验证语法
print("验证文件语法...")
result = os.popen(f'node -c {mock_file} 2>&1').read()
if result:
print(f"❌ 语法错误:{result}")
# 恢复备份
with open(backup_file, 'r', encoding='utf-8') as f:
content = f.read()
with open(mock_file, 'w', encoding='utf-8') as f:
f.write(content)
print("已恢复备份")
else:
print("✓ 语法验证通过")
print(f"\n成功更新 {update_count} 个产业的面试题!")
else:
print("\n未更新任何产业")