101 lines
3.7 KiB
Python
101 lines
3.7 KiB
Python
|
|
#!/usr/bin/env python3
|
||
|
|
import json
|
||
|
|
import re
|
||
|
|
import os
|
||
|
|
from datetime import datetime
|
||
|
|
|
||
|
|
print("正在更新化工岗位的修改版简历...")
|
||
|
|
|
||
|
|
# 修改版简历文件夹路径
|
||
|
|
modified_folder = '网页未导入数据/化工产业/化工修改版简历'
|
||
|
|
|
||
|
|
# 读取所有修改版简历文件
|
||
|
|
modified_resumes = {}
|
||
|
|
for filename in os.listdir(modified_folder):
|
||
|
|
if filename.endswith('.md'):
|
||
|
|
position_name = filename.replace('.md', '')
|
||
|
|
file_path = os.path.join(modified_folder, filename)
|
||
|
|
with open(file_path, 'r', encoding='utf-8') as f:
|
||
|
|
content = f.read()
|
||
|
|
modified_resumes[position_name] = content
|
||
|
|
print(f"读取修改版简历: {position_name}")
|
||
|
|
|
||
|
|
print(f"\n共读取 {len(modified_resumes)} 份修改版简历")
|
||
|
|
|
||
|
|
# 读取现有mock文件
|
||
|
|
with open('src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f:
|
||
|
|
content = f.read()
|
||
|
|
|
||
|
|
# 备份
|
||
|
|
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
|
||
|
|
backup_file = f'src/mocks/resumeInterviewMock.js.backup_modified_{timestamp}'
|
||
|
|
with open(backup_file, 'w', encoding='utf-8') as f:
|
||
|
|
f.write(content)
|
||
|
|
print(f"已创建备份: {backup_file}")
|
||
|
|
|
||
|
|
# 更新每个岗位的修改版简历
|
||
|
|
updated_count = 0
|
||
|
|
for position_name, modified_content in modified_resumes.items():
|
||
|
|
# 转义特殊字符
|
||
|
|
escaped_content = (modified_content
|
||
|
|
.replace('\\', '\\\\')
|
||
|
|
.replace('"', '\\"')
|
||
|
|
.replace('\n', '\\n')
|
||
|
|
.replace('\r', '\\r')
|
||
|
|
.replace('\t', '\\t'))
|
||
|
|
|
||
|
|
# 查找并替换对应岗位的modified字段
|
||
|
|
# 使用更精确的正则表达式来匹配岗位
|
||
|
|
pattern = rf'("id":\s*"[^"]*",\s*"position":\s*"{re.escape(position_name)}"[^}}]*?"content":\s*{{[^}}]*?"modified":\s*)"[^"]*"'
|
||
|
|
|
||
|
|
def replacement_func(match):
|
||
|
|
return f'{match.group(1)}"{escaped_content}"'
|
||
|
|
|
||
|
|
new_content = re.sub(pattern, replacement_func, content, flags=re.DOTALL)
|
||
|
|
|
||
|
|
if new_content != content:
|
||
|
|
content = new_content
|
||
|
|
updated_count += 1
|
||
|
|
print(f"✓ 已更新 {position_name} 的修改版简历")
|
||
|
|
else:
|
||
|
|
# 尝试另一种模式(可能岗位名称有差异)
|
||
|
|
# 查找类似的岗位名称
|
||
|
|
pattern2 = rf'("position":\s*"[^"]*{re.escape(position_name.replace("专员", "").replace("工程师", ""))}[^"]*"[^}}]*?"content":\s*{{[^}}]*?"modified":\s*)"[^"]*"'
|
||
|
|
new_content = re.sub(pattern2, replacement_func, content, count=1, flags=re.DOTALL)
|
||
|
|
|
||
|
|
if new_content != content:
|
||
|
|
content = new_content
|
||
|
|
updated_count += 1
|
||
|
|
print(f"✓ 已更新类似岗位 {position_name} 的修改版简历")
|
||
|
|
|
||
|
|
# 保存更新后的文件
|
||
|
|
if updated_count > 0:
|
||
|
|
with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f:
|
||
|
|
f.write(content)
|
||
|
|
print(f"\n✅ 成功更新了 {updated_count} 个岗位的修改版简历")
|
||
|
|
|
||
|
|
# 验证语法
|
||
|
|
import subprocess
|
||
|
|
try:
|
||
|
|
result = subprocess.run(['node', '-c', 'src/mocks/resumeInterviewMock.js'],
|
||
|
|
capture_output=True, text=True, encoding='utf-8')
|
||
|
|
if result.returncode == 0:
|
||
|
|
print("✓ 语法检查通过")
|
||
|
|
|
||
|
|
# 显示更新结果
|
||
|
|
print("\n=== 更新结果 ===")
|
||
|
|
print(f"已更新岗位:")
|
||
|
|
for position_name in modified_resumes.keys():
|
||
|
|
if position_name in content:
|
||
|
|
print(f" ✓ {position_name}")
|
||
|
|
|
||
|
|
else:
|
||
|
|
print(f"✗ 语法检查失败: {result.stderr}")
|
||
|
|
# 恢复备份
|
||
|
|
with open(backup_file, 'r', encoding='utf-8') as f:
|
||
|
|
backup_content = f.read()
|
||
|
|
with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f:
|
||
|
|
f.write(backup_content)
|
||
|
|
print("已从备份恢复")
|
||
|
|
except Exception as e:
|
||
|
|
print(f"错误: {e}")
|