添加批量题号来源识别工具并在分类号记录中添加点要测试题号列表

This commit is contained in:
WangWeiye 2023-06-07 08:23:37 +08:00
parent 66f63d6e62
commit d09368bc07
4 changed files with 134 additions and 6 deletions

View File

@ -0,0 +1,70 @@
original_id_list = "1:50000"
import re,json
suffix_words = ["试题"]
def strip_suffix(problem, suf_words):
origin = problem["origin"]
for sw in suf_words:
if sw in origin:
origin = re.sub(sw+r"[\d]*$","",origin)
return(origin)
def generate_number_set(string):
string = re.sub(r"[\n\s]","",string)
string_list = string.split(",")
numbers_list = []
for s in string_list:
if not ":" in s:
numbers_list.append(s.zfill(6))
else:
start,end = s.split(":")
for ind in range(int(start),int(end)+1):
numbers_list.append(str(ind).zfill(6))
return numbers_list
def generate_exp(id_list):
if not len(id_list) == 0:
exp_list = []
start = id_list[0]
current = start
end = start
for id in id_list[1:]:
# print(id,current)
if int(id)-1 == int(current):
current = id
end = id
else:
if not start == end:
exp_list.append('"'+start+":"+end+'"')
else:
exp_list.append('"'+start+'"')
start = id
current = id
end = id
if not start == end:
exp_list.append('"'+start+":"+end+'"')
else:
exp_list.append('"'+start+'"')
return exp_list
with open(r"..\题库0.3\Problems.json","r",encoding="u8") as f:
pro_dict = json.loads(f.read())
idlist = generate_number_set(original_id_list)
setlist = {}
for id in idlist:
if id in pro_dict:
p = pro_dict[id]
origin = strip_suffix(p,suffix_words)
if not origin in setlist:
setlist[origin] = [id]
else:
setlist[origin].append(id)
outputlist = {}
for origin in setlist:
outputlist[origin] = ",".join(generate_exp(setlist[origin])).replace('"',"")
t = json.dumps(outputlist,ensure_ascii=False,indent=4)
with open("临时文件/分类题号列表.txt","w",encoding="u8") as f:
f.write(t)
print("已输出至 临时文件/分类题号列表.txt")

View File

@ -110,6 +110,8 @@ def run_command1():
call(["python","合并使用记录并排序.py"])
elif selectedtool == "剪贴板单选变多选":
call(["python","../文本处理工具/单选变为多选.py"])
elif selectedtool == "分类题号字典生成":
call(["python","分类题号字典生成.py"])
LabelTool.config(text = selectedtool+"STEP1命令执行完毕")
button1.place_forget()
@ -146,6 +148,8 @@ ImportMenu.add_command(label = "寻找空闲题号", command = lambda: SetButton
ImportMenu.add_separator()
ImportMenu.add_command(label = "批量收录题目", command = lambda: SetButton("批量收录题目",1,["批量收录题目.py"]))
ImportMenu.add_command(label = "添加关联题目", command = lambda: SetButton("添加关联题目",2,["添加关联题目.py"]))
ImportMenu.add_separator()
ImportMenu.add_command(label = "分类题号字典生成", command = lambda: SetButton("分类题号字典生成",1,["分类题号字典生成.py"]))
# 设置 维护 菜单项
MaintainenceMenu = Menu(menubar, tearoff = False)

View File

@ -17,12 +17,34 @@ filename = "统计单元作业无答案"
"""---设置题目列表---"""
#字典字段为文件名, 之后为内容的题号
problems_dict = {
"8.1.1-成对数据间的关系":"030554,030521,030522,030523,030524",
"8.1.2-相关系数":"010905,010906,010908,030525,030526,030591",
"8.2.1-一元线性回归分析的基本思想":"030527,030528,030567,010911,010912,030573",
"8.2.2-一元线性回归分析的应用举例":"010913,010915,010916,010917,010918",
"8.3.1-2乘2列联表独立性检验":"010920,010922,030530,030531,030532,030578,030579,030580,030593",
"8.3.2-独立性检验的具体应用":"030582,030588"
"高中数学质量测试与监控单元知识测试01集合与逻辑单元测试": "017551:017567",
"高中数学质量测试与监控单元知识测试02等式与不等式单元测试": "017568:017582",
"高中数学质量测试与监控单元知识测试03幂函数指数函数和对数函数单元测试": "017583:017596",
"高中数学质量测试与监控单元知识测试04函数的基本性质单元测试": "017597:017610",
"高中数学质量测试与监控单元知识测试05三角单元测试": "017611:017624",
"高中数学质量测试与监控单元知识测试06三角函数单元测试": "017625:017638",
"高中数学质量测试与监控单元知识测试07平面向量单元测试": "017639:017655",
"高中数学质量测试与监控单元知识测试08复数单元测试": "017656:017671",
"高中数学质量测试与监控单元知识测试09空间直线与平面单元测试": "017672:017684",
"高中数学质量测试与监控单元知识测试10简单几何体单元测试": "017685:017697",
"高中数学质量测试与监控单元知识测试11概率初步单元测试": "017698:017715",
"高中数学质量测试与监控单元知识测试12概率与统计初步单元测试": "017716:017733",
"高中数学质量测试与监控单元知识测试13坐标平面上的直线单元测试": "017734:017749",
"高中数学质量测试与监控单元知识测试14圆锥曲线单元测试": "017750:017764",
"高中数学质量测试与监控单元知识测试15空间向量及其应用一单元测试": "017765:017782",
"高中数学质量测试与监控单元知识测试16空间向量及其应用二单元测试": "017783:017798",
"高中数学质量测试与监控单元知识测试17数列和数学归纳法单元测试": "017799:017812",
"高中数学质量测试与监控单元知识测试18导数及其应用单元测试": "017813:017829",
"高中数学质量测试与监控单元知识测试19计数原理单元测试": "017830:017847",
"高中数学质量测试与监控单元知识测试20概率初步续单元测试": "017848:017864",
"高中数学质量测试综合测试01集合函数不等式": "017865:017887",
"高中数学质量测试综合测试02三角与平面向量": "017888:017909",
"高中数学质量测试综合测试03数列": "017910:017931",
"高中数学质量测试综合测试04解析几何直线和圆": "017932:017952",
"高中数学质量测试综合测试05解析几何圆锥曲线": "017953:017971",
"高中数学质量测试综合测试06空间直线与平面多面体与旋转体及空间向量": "017972:018001",
"高中数学质量测试综合测试07排列组合二项式定理概率与复数": "018002:018019",
"高中数学质量测试综合测试08导数及其应用": "018020:018038"
}
# problems_dict = {

View File

@ -1,3 +1,35 @@
20230607 点要附带练习卷
problems_dict = {
"高中数学质量测试与监控单元知识测试01集合与逻辑单元测试": "017551:017567",
"高中数学质量测试与监控单元知识测试02等式与不等式单元测试": "017568:017582",
"高中数学质量测试与监控单元知识测试03幂函数指数函数和对数函数单元测试": "017583:017596",
"高中数学质量测试与监控单元知识测试04函数的基本性质单元测试": "017597:017610",
"高中数学质量测试与监控单元知识测试05三角单元测试": "017611:017624",
"高中数学质量测试与监控单元知识测试06三角函数单元测试": "017625:017638",
"高中数学质量测试与监控单元知识测试07平面向量单元测试": "017639:017655",
"高中数学质量测试与监控单元知识测试08复数单元测试": "017656:017671",
"高中数学质量测试与监控单元知识测试09空间直线与平面单元测试": "017672:017684",
"高中数学质量测试与监控单元知识测试10简单几何体单元测试": "017685:017697",
"高中数学质量测试与监控单元知识测试11概率初步单元测试": "017698:017715",
"高中数学质量测试与监控单元知识测试12概率与统计初步单元测试": "017716:017733",
"高中数学质量测试与监控单元知识测试13坐标平面上的直线单元测试": "017734:017749",
"高中数学质量测试与监控单元知识测试14圆锥曲线单元测试": "017750:017764",
"高中数学质量测试与监控单元知识测试15空间向量及其应用一单元测试": "017765:017782",
"高中数学质量测试与监控单元知识测试16空间向量及其应用二单元测试": "017783:017798",
"高中数学质量测试与监控单元知识测试17数列和数学归纳法单元测试": "017799:017812",
"高中数学质量测试与监控单元知识测试18导数及其应用单元测试": "017813:017829",
"高中数学质量测试与监控单元知识测试19计数原理单元测试": "017830:017847",
"高中数学质量测试与监控单元知识测试20概率初步续单元测试": "017848:017864",
"高中数学质量测试综合测试01集合函数不等式": "017865:017887",
"高中数学质量测试综合测试02三角与平面向量": "017888:017909",
"高中数学质量测试综合测试03数列": "017910:017931",
"高中数学质量测试综合测试04解析几何直线和圆": "017932:017952",
"高中数学质量测试综合测试05解析几何圆锥曲线": "017953:017971",
"高中数学质量测试综合测试06空间直线与平面多面体与旋转体及空间向量": "017972:018001",
"高中数学质量测试综合测试07排列组合二项式定理概率与复数": "018002:018019",
"高中数学质量测试综合测试08导数及其应用": "018020:018038"
}
20230531 2022届全国各地高考试题汇编
problems_dict = {
"2022届全国高考新高考I卷":"017244:017265",