88 lines
3.3 KiB
Python
88 lines
3.3 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
|
||
import json
|
||
import re
|
||
|
||
# 读取简历映射数据
|
||
with open('/Users/apple/Documents/cursor/教务系统/frontend/scripts/resume_mapping.json', 'r', encoding='utf-8') as f:
|
||
position_map = json.load(f)
|
||
|
||
# 读取当前的mockData.js文件
|
||
with open('/Users/apple/Documents/cursor/教务系统/frontend/src/data/mockData.js', 'r', encoding='utf-8') as f:
|
||
mockdata_lines = f.readlines()
|
||
|
||
# 创建一个函数来转义字符串用于JavaScript
|
||
def escape_for_js(text):
|
||
# 转义反引号和反斜杠
|
||
text = text.replace('\\', '\\\\')
|
||
text = text.replace('`', '\\`')
|
||
text = text.replace('${', '\\${')
|
||
return text
|
||
|
||
# 更新计数器
|
||
update_count = 0
|
||
not_found_positions = []
|
||
|
||
# 遍历所有行,找到需要更新的位置
|
||
i = 0
|
||
while i < len(mockdata_lines):
|
||
line = mockdata_lines[i]
|
||
|
||
# 查找jobTitle字段
|
||
if 'jobTitle:' in line:
|
||
# 提取职位名称
|
||
match = re.search(r'jobTitle:\s*["\']([^"\']+)["\']', line)
|
||
if match:
|
||
job_title = match.group(1)
|
||
|
||
# 检查是否有对应的简历数据
|
||
if job_title in position_map:
|
||
print(f"更新岗位: {job_title}")
|
||
update_count += 1
|
||
|
||
# 找到resumeContent的起始位置
|
||
j = i + 1
|
||
while j < len(mockdata_lines) and 'resumeContent:' not in mockdata_lines[j]:
|
||
j += 1
|
||
|
||
if j < len(mockdata_lines):
|
||
# 找到resumeContent的结束位置(下一个},)
|
||
k = j + 1
|
||
brace_count = 1
|
||
while k < len(mockdata_lines) and brace_count > 0:
|
||
if '{' in mockdata_lines[k]:
|
||
brace_count += mockdata_lines[k].count('{')
|
||
if '}' in mockdata_lines[k]:
|
||
brace_count -= mockdata_lines[k].count('}')
|
||
k += 1
|
||
|
||
# 构建新的resumeContent
|
||
resume_data = position_map[job_title]
|
||
new_content = []
|
||
new_content.append(" resumeContent: {\n")
|
||
new_content.append(f" projectExperience: `{escape_for_js(resume_data['projectExperience'])}`,\n")
|
||
new_content.append(f" skills: `{escape_for_js(resume_data['skills'])}`,\n")
|
||
new_content.append(f" personalSummary: `{escape_for_js(resume_data['personalSummary'])}`,\n")
|
||
new_content.append(" },\n")
|
||
|
||
# 替换原有内容
|
||
mockdata_lines[j:k] = new_content
|
||
i = j + len(new_content)
|
||
continue
|
||
else:
|
||
not_found_positions.append(job_title)
|
||
|
||
i += 1
|
||
|
||
# 写回更新后的内容
|
||
with open('/Users/apple/Documents/cursor/教务系统/frontend/src/data/mockData.js', 'w', encoding='utf-8') as f:
|
||
f.writelines(mockdata_lines)
|
||
|
||
print(f"\n更新完成!")
|
||
print(f"成功更新了 {update_count} 个岗位的简历数据")
|
||
|
||
if not_found_positions:
|
||
print(f"\n以下 {len(not_found_positions)} 个岗位在简历数据中未找到匹配:")
|
||
for pos in not_found_positions:
|
||
print(f" - {pos}") |