84 lines
2.8 KiB
Python
84 lines
2.8 KiB
Python
|
|
#!/usr/bin/env python3
|
|||
|
|
import json
|
|||
|
|
import re
|
|||
|
|
from datetime import datetime
|
|||
|
|
|
|||
|
|
print("正在删除面试题题目中的序号...")
|
|||
|
|
|
|||
|
|
# 读取现有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_remove_numbers_{timestamp}'
|
|||
|
|
with open(backup_file, 'w', encoding='utf-8') as f:
|
|||
|
|
f.write(content)
|
|||
|
|
print(f"已创建备份: {backup_file}")
|
|||
|
|
|
|||
|
|
# 定义函数来删除题目开头的序号
|
|||
|
|
def remove_question_number(question):
|
|||
|
|
"""删除题目开头的序号,如 '1. ', '1、', '问题1:', '问题一、' 等"""
|
|||
|
|
# 删除数字序号(如 1. 2. 或 1、2、)
|
|||
|
|
question = re.sub(r'^[0-9]+[\.、]\s*', '', question)
|
|||
|
|
# 删除"问题X:"格式
|
|||
|
|
question = re.sub(r'^问题[0-9一二三四五六七八九十]+[::]\s*', '', question)
|
|||
|
|
# 删除"问题X、"格式
|
|||
|
|
question = re.sub(r'^问题[0-9一二三四五六七八九十]+[、]\s*', '', question)
|
|||
|
|
# 删除单独的数字开头
|
|||
|
|
question = re.sub(r'^[0-9]+\s+', '', question)
|
|||
|
|
# 删除Q1、Q2等格式
|
|||
|
|
question = re.sub(r'^Q[0-9]+[::、]\s*', '', question, flags=re.IGNORECASE)
|
|||
|
|
|
|||
|
|
return question.strip()
|
|||
|
|
|
|||
|
|
# 计数器
|
|||
|
|
updated_count = 0
|
|||
|
|
total_questions = 0
|
|||
|
|
|
|||
|
|
# 查找所有的question字段并删除序号
|
|||
|
|
# 匹配 "question": "..." 格式
|
|||
|
|
pattern = r'"question"\s*:\s*"([^"]*)"'
|
|||
|
|
|
|||
|
|
def replace_question(match):
|
|||
|
|
global updated_count, total_questions
|
|||
|
|
total_questions += 1
|
|||
|
|
original = match.group(1)
|
|||
|
|
cleaned = remove_question_number(original)
|
|||
|
|
|
|||
|
|
# 如果有变化,计数
|
|||
|
|
if original != cleaned:
|
|||
|
|
updated_count += 1
|
|||
|
|
print(f" 更新: {original[:50]}... -> {cleaned[:50]}...")
|
|||
|
|
|
|||
|
|
# 返回更新后的完整匹配串
|
|||
|
|
return f'"question": "{cleaned}"'
|
|||
|
|
|
|||
|
|
# 执行替换
|
|||
|
|
new_content = re.sub(pattern, replace_question, content)
|
|||
|
|
|
|||
|
|
# 保存更新后的文件
|
|||
|
|
with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f:
|
|||
|
|
f.write(new_content)
|
|||
|
|
|
|||
|
|
print(f"\n处理了 {total_questions} 道题目")
|
|||
|
|
print(f"更新了 {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(f"\n✅ 成功删除了所有题目中的序号!")
|
|||
|
|
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}")
|