This repository has been archived on 2024-06-23. You can view files and clone it, but cannot push or open issues or pull requests.
mathdeptv2/工具v2/讲义结构编号录入.py

79 lines
3.0 KiB
Python

prefix = "Z202601" #第一个字母是分类的代号, 1-4为数字是届别, 5-6位数字一般是学期序号(01-06), 特殊情况酌情分类, 假期作业归属于前一个学期
from database_tools import *
jsonfile = f"../备课组/{prefix[3:5]}届/校本材料.json"
notes_dict = load_dict(jsonfile)
# print(len(notes_dict))
if not prefix[0] in notes_dict["structures"]:
AddNew = input("此类型不在列表中, 新增(A)/退出(Q):")
if AddNew[0].upper() == "A":
descr = input("类型描述:")
cn = input("编号是否连续(T/F):")
if cn[0].upper() == "T":
cn = True
else:
cn = False
partscount = int(input("分为多少个部分:"))
new_struct_dict = {
"description": descr,
"consecutivenumbering": cn,
"structure": {}
}
for i in range(partscount):
partid = input(f"{i+1} 部分的代号:")
partname = input(f"部分 {partid} 的名称:")
spaceflag = input(f"部分 {partid}: {partname} 中是否要在题目后留空格(T/F):")
if spaceflag[0].upper() == "T":
spaceflag = True
else:
spaceflag = False
new_struct_dict["structure"][partid] = {
"name": partname,
"spaceflag": spaceflag
}
notes_dict["structures"][prefix[0]] = new_struct_dict.copy()
save_dict(notes_dict,jsonfile)
else:
pass
else:
numberlist = []
for id in notes_dict["notes"]:
if prefix in id:
numberlist.append(id[-2:])
print("该分类下已有材料编号: "+generate_exp(numberlist))
pid = prefix + input("请输入新材料编号(两位数):")
while pid in notes_dict["notes"]:
print("编号重复, 请重新输入.")
pid = prefix + input("请输入新材料编号(两位数):")
name = input("请输入材料名称:")
filenameraw = input("生成的文件名和材料名称是否一致?([Y]/如果不一致请输入文件名):")
if filenameraw.upper() == "Y":
filename = name
else:
filename = filenameraw
new_note_dict = {
"id": pid,
"name": name,
"filename": filename
}
structure = notes_dict['structures'][prefix[0]]['structure']
print(f"此类材料共有 {len(structure)} 个部分, 分别是:")
for p in structure:
print(f"{p}: {structure[p]['name']}")
new_note_dict[p] = []
for p in structure:
rawdata = input(f"现在输入 {p}: {structure[p]['name']} 部分的内容编号:")
rawdata = re.sub(r"[^BXK\d:,]","",rawdata)
if re.findall(r"\d",rawdata) == []:
new_note_dict[p] = []
else:
new_note_dict[p] = generate_id_set(rawdata)
print(f"{p}: {new_note_dict[p]}")
notes_dict["notes"][pid] = new_note_dict.copy()
notes_dict["notes"] = SortDict(notes_dict["notes"])
save_dict(notes_dict,jsonfile)