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)