Files
ALL-teach_sys/frontend_化工/remove_question_numbers.py

84 lines
2.8 KiB
Python
Raw Normal View History

#!/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}")