117 lines
4.8 KiB
Python
117 lines
4.8 KiB
Python
|
|
#!/usr/bin/env python3
|
|||
|
|
# -*- coding: utf-8 -*-
|
|||
|
|
|
|||
|
|
import re
|
|||
|
|
|
|||
|
|
print("清理重复的questions数组...")
|
|||
|
|
|
|||
|
|
# 读取文件
|
|||
|
|
with open('/Users/apple/Documents/cursor/教务系统/frontend_大健康/src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f:
|
|||
|
|
content = f.read()
|
|||
|
|
|
|||
|
|
# 备份
|
|||
|
|
with open('/Users/apple/Documents/cursor/教务系统/frontend_大健康/src/mocks/resumeInterviewMock.js.backup_before_cleanup', 'w', encoding='utf-8') as f:
|
|||
|
|
f.write(content)
|
|||
|
|
|
|||
|
|
# 对每个岗位群,只保留第一个questions数组(包含正确内容的)
|
|||
|
|
industries = ['health_1', 'health_2', 'health_3', 'health_4', 'health_5',
|
|||
|
|
'health_6', 'health_7', 'health_8', 'health_9', 'health_10', 'health_11']
|
|||
|
|
|
|||
|
|
for industry_id in industries:
|
|||
|
|
# 找到该岗位群的开始和结束
|
|||
|
|
pattern = rf'"id":\s*"{industry_id}"'
|
|||
|
|
match = re.search(pattern, content)
|
|||
|
|
|
|||
|
|
if match:
|
|||
|
|
start = match.start()
|
|||
|
|
|
|||
|
|
# 找到下一个岗位群或数组结束
|
|||
|
|
next_industry_pattern = rf'"id":\s*"health_\d+"'
|
|||
|
|
next_matches = list(re.finditer(next_industry_pattern, content[start + 10:]))
|
|||
|
|
|
|||
|
|
if next_matches:
|
|||
|
|
end = start + 10 + next_matches[0].start()
|
|||
|
|
else:
|
|||
|
|
# 可能是最后一个岗位群
|
|||
|
|
end_match = re.search(r'\n\];', content[start:])
|
|||
|
|
if end_match:
|
|||
|
|
end = start + end_match.start()
|
|||
|
|
else:
|
|||
|
|
end = len(content)
|
|||
|
|
|
|||
|
|
# 获取该岗位群的内容
|
|||
|
|
industry_content = content[start:end]
|
|||
|
|
|
|||
|
|
# 查找所有的questions数组
|
|||
|
|
questions_matches = list(re.finditer(r'"questions":\s*\[', industry_content))
|
|||
|
|
|
|||
|
|
if len(questions_matches) > 1:
|
|||
|
|
print(f" {industry_id}: 发现 {len(questions_matches)} 个questions数组")
|
|||
|
|
|
|||
|
|
# 保留第一个questions(包含正确内容),删除其他的
|
|||
|
|
# 找到第一个questions的结束位置
|
|||
|
|
first_q_start = questions_matches[0].start()
|
|||
|
|
|
|||
|
|
# 找到对应的结束位置(匹配的])
|
|||
|
|
bracket_count = 0
|
|||
|
|
in_questions = False
|
|||
|
|
first_q_end = -1
|
|||
|
|
|
|||
|
|
for i in range(first_q_start, len(industry_content)):
|
|||
|
|
if industry_content[i] == '[':
|
|||
|
|
if not in_questions and '"questions"' in industry_content[max(0, i-20):i]:
|
|||
|
|
in_questions = True
|
|||
|
|
bracket_count = 1
|
|||
|
|
elif in_questions:
|
|||
|
|
bracket_count += 1
|
|||
|
|
elif industry_content[i] == ']' and in_questions:
|
|||
|
|
bracket_count -= 1
|
|||
|
|
if bracket_count == 0:
|
|||
|
|
first_q_end = i + 1
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
if first_q_end > 0:
|
|||
|
|
# 删除第二个questions数组
|
|||
|
|
if len(questions_matches) > 1:
|
|||
|
|
second_q_start = questions_matches[1].start()
|
|||
|
|
|
|||
|
|
# 找到第二个questions的结束位置
|
|||
|
|
bracket_count = 0
|
|||
|
|
in_questions = False
|
|||
|
|
second_q_end = -1
|
|||
|
|
|
|||
|
|
for i in range(second_q_start, len(industry_content)):
|
|||
|
|
if industry_content[i] == '[':
|
|||
|
|
if not in_questions and '"questions"' in industry_content[max(0, i-20):i]:
|
|||
|
|
in_questions = True
|
|||
|
|
bracket_count = 1
|
|||
|
|
elif in_questions:
|
|||
|
|
bracket_count += 1
|
|||
|
|
elif industry_content[i] == ']' and in_questions:
|
|||
|
|
bracket_count -= 1
|
|||
|
|
if bracket_count == 0:
|
|||
|
|
second_q_end = i + 1
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
if second_q_end > 0:
|
|||
|
|
# 删除第二个questions(包括前面的逗号)
|
|||
|
|
# 查找前面的逗号
|
|||
|
|
comma_pos = industry_content.rfind(',', 0, second_q_start)
|
|||
|
|
if comma_pos > first_q_end:
|
|||
|
|
# 删除从逗号到questions结束的内容
|
|||
|
|
new_industry_content = industry_content[:comma_pos] + industry_content[second_q_end:]
|
|||
|
|
|
|||
|
|
# 替换原内容
|
|||
|
|
content = content[:start] + new_industry_content + content[end:]
|
|||
|
|
print(f" ✓ 已删除 {industry_id} 的重复questions")
|
|||
|
|
|
|||
|
|
# 清理多余的空行和逗号
|
|||
|
|
content = re.sub(r',\s*\]', ']', content)
|
|||
|
|
content = re.sub(r',\s*\}', '}', content)
|
|||
|
|
content = re.sub(r'\n\s*\n\s*\n', '\n\n', content)
|
|||
|
|
|
|||
|
|
# 写回文件
|
|||
|
|
with open('/Users/apple/Documents/cursor/教务系统/frontend_大健康/src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f:
|
|||
|
|
f.write(content)
|
|||
|
|
|
|||
|
|
print("✓ 清理完成!")
|