diff --git a/工具v2/database_tools.py b/工具v2/database_tools.py index c8e03504..9cf52216 100644 --- a/工具v2/database_tools.py +++ b/工具v2/database_tools.py @@ -1,4 +1,5 @@ import json,re,os,Levenshtein,fitz,time,sys +import pandas as pd def GetDate(): #获得当前日期 currentdate = str(time.localtime().tm_year)+str(time.localtime().tm_mon).zfill(2)+str(time.localtime().tm_mday).zfill(2) diff --git a/工具v2/文本文件/metadata.txt b/工具v2/文本文件/metadata.txt index ce7d7d26..94c516e8 100644 --- a/工具v2/文本文件/metadata.txt +++ b/工具v2/文本文件/metadata.txt @@ -1,3 +1,758 @@ -52 8096 -52 8097 -53 8096 \ No newline at end of file +usages + +022106 +20230620 2025届高一01班 0.881 + +022107 +20230620 2025届高一01班 0.857 + +022108 +20230620 2025届高一01班 0.905 + +022109 +20230620 2025届高一01班 0.643 + +022110 +20230620 2025届高一01班 0.857 + +022111 +20230620 2025届高一01班 0.905 + +022112 +20230620 2025届高一01班 0.810 + +022113 +20230620 2025届高一01班 0.595 + +022114 +20230620 2025届高一01班 0.762 + +022115 +20230620 2025届高一01班 0.548 + +022116 +20230620 2025届高一01班 0.167 + +022117 +20230620 2025届高一01班 0.071 + +022118 +20230620 2025届高一01班 0.810 + +022119 +20230620 2025届高一01班 0.786 + +022120 +20230620 2025届高一01班 0.619 + +022121 +20230620 2025届高一01班 0.643 + +022122 +20230620 2025届高一01班 0.897 0.841 + +022123 +20230620 2025届高一01班 0.964 0.455 + +022124 +20230620 2025届高一01班 0.655 0.622 + +022125 +20230620 2025届高一01班 0.970 0.909 0.387 + +022126 +20230620 2025届高一01班 0.929 0.460 0.033 + +022106 +20230620 2025届高一02班 0.829 + +022107 +20230620 2025届高一02班 1.000 + +022108 +20230620 2025届高一02班 1.000 + +022109 +20230620 2025届高一02班 0.805 + +022110 +20230620 2025届高一02班 0.902 + +022111 +20230620 2025届高一02班 0.732 + +022112 +20230620 2025届高一02班 0.927 + +022113 +20230620 2025届高一02班 0.561 + +022114 +20230620 2025届高一02班 0.659 + +022115 +20230620 2025届高一02班 0.439 + +022116 +20230620 2025届高一02班 0.098 + +022117 +20230620 2025届高一02班 0.049 + +022118 +20230620 2025届高一02班 0.902 + +022119 +20230620 2025届高一02班 0.732 + +022120 +20230620 2025届高一02班 0.585 + +022121 +20230620 2025届高一02班 0.683 + +022122 +20230620 2025届高一02班 0.959 0.772 + +022123 +20230620 2025届高一02班 0.996 0.576 + +022124 +20230620 2025届高一02班 0.650 0.439 + +022125 +20230620 2025届高一02班 0.976 0.882 0.470 + +022126 +20230620 2025届高一02班 1.000 0.346 0.005 + +022106 +20230620 2025届高一03班 0.921 + +022107 +20230620 2025届高一03班 0.921 + +022108 +20230620 2025届高一03班 0.921 + +022109 +20230620 2025届高一03班 0.737 + +022110 +20230620 2025届高一03班 0.974 + +022111 +20230620 2025届高一03班 0.763 + +022112 +20230620 2025届高一03班 0.816 + +022113 +20230620 2025届高一03班 0.658 + +022114 +20230620 2025届高一03班 0.763 + +022115 +20230620 2025届高一03班 0.474 + +022116 +20230620 2025届高一03班 0.079 + +022117 +20230620 2025届高一03班 0.000 + +022118 +20230620 2025届高一03班 0.895 + +022119 +20230620 2025届高一03班 0.789 + +022120 +20230620 2025届高一03班 0.632 + +022121 +20230620 2025届高一03班 0.632 + +022122 +20230620 2025届高一03班 0.904 0.838 + +022123 +20230620 2025届高一03班 0.943 0.530 + +022124 +20230620 2025届高一03班 0.776 0.727 + +022125 +20230620 2025届高一03班 0.967 0.868 0.378 + +022126 +20230620 2025届高一03班 0.961 0.395 0.000 + +022106 +20230620 2025届高一04班 0.902 + +022107 +20230620 2025届高一04班 0.951 + +022108 +20230620 2025届高一04班 0.902 + +022109 +20230620 2025届高一04班 0.805 + +022110 +20230620 2025届高一04班 0.927 + +022111 +20230620 2025届高一04班 0.780 + +022112 +20230620 2025届高一04班 0.951 + +022113 +20230620 2025届高一04班 0.561 + +022114 +20230620 2025届高一04班 0.829 + +022115 +20230620 2025届高一04班 0.463 + +022116 +20230620 2025届高一04班 0.073 + +022117 +20230620 2025届高一04班 0.024 + +022118 +20230620 2025届高一04班 0.780 + +022119 +20230620 2025届高一04班 0.805 + +022120 +20230620 2025届高一04班 0.634 + +022121 +20230620 2025届高一04班 0.683 + +022122 +20230620 2025届高一04班 0.923 0.866 + +022123 +20230620 2025届高一04班 0.976 0.576 + +022124 +20230620 2025届高一04班 0.728 0.524 + +022125 +20230620 2025届高一04班 0.927 0.882 0.491 + +022126 +20230620 2025届高一04班 0.976 0.419 0.005 + +022106 +20230620 2025届高一05班 0.833 + +022107 +20230620 2025届高一05班 0.952 + +022108 +20230620 2025届高一05班 0.905 + +022109 +20230620 2025届高一05班 0.833 + +022110 +20230620 2025届高一05班 0.952 + +022111 +20230620 2025届高一05班 0.857 + +022112 +20230620 2025届高一05班 0.952 + +022113 +20230620 2025届高一05班 0.690 + +022114 +20230620 2025届高一05班 0.738 + +022115 +20230620 2025届高一05班 0.667 + +022116 +20230620 2025届高一05班 0.167 + +022117 +20230620 2025届高一05班 0.024 + +022118 +20230620 2025届高一05班 0.833 + +022119 +20230620 2025届高一05班 0.786 + +022120 +20230620 2025届高一05班 0.619 + +022121 +20230620 2025届高一05班 0.738 + +022122 +20230620 2025届高一05班 0.917 0.849 + +022123 +20230620 2025届高一05班 0.956 0.562 + +022124 +20230620 2025届高一05班 0.714 0.562 + +022125 +20230620 2025届高一05班 0.952 0.952 0.533 + +022126 +20230620 2025届高一05班 0.952 0.409 0.007 + +022106 +20230620 2025届高一06班 0.929 + +022107 +20230620 2025届高一06班 0.929 + +022108 +20230620 2025届高一06班 0.833 + +022109 +20230620 2025届高一06班 0.762 + +022110 +20230620 2025届高一06班 0.952 + +022111 +20230620 2025届高一06班 0.714 + +022112 +20230620 2025届高一06班 0.929 + +022113 +20230620 2025届高一06班 0.738 + +022114 +20230620 2025届高一06班 0.667 + +022115 +20230620 2025届高一06班 0.405 + +022116 +20230620 2025届高一06班 0.095 + +022117 +20230620 2025届高一06班 0.071 + +022118 +20230620 2025届高一06班 0.810 + +022119 +20230620 2025届高一06班 0.762 + +022120 +20230620 2025届高一06班 0.595 + +022121 +20230620 2025届高一06班 0.690 + +022122 +20230620 2025届高一06班 0.937 0.841 + +022123 +20230620 2025届高一06班 0.952 0.545 + +022124 +20230620 2025届高一06班 0.683 0.667 + +022125 +20230620 2025届高一06班 0.976 0.901 0.521 + +022126 +20230620 2025届高一06班 0.988 0.377 0.007 + +022106 +20230620 2025届高一07班 0.952 + +022107 +20230620 2025届高一07班 0.952 + +022108 +20230620 2025届高一07班 0.929 + +022109 +20230620 2025届高一07班 0.667 + +022110 +20230620 2025届高一07班 0.905 + +022111 +20230620 2025届高一07班 0.810 + +022112 +20230620 2025届高一07班 0.952 + +022113 +20230620 2025届高一07班 0.595 + +022114 +20230620 2025届高一07班 0.738 + +022115 +20230620 2025届高一07班 0.500 + +022116 +20230620 2025届高一07班 0.119 + +022117 +20230620 2025届高一07班 0.000 + +022118 +20230620 2025届高一07班 0.810 + +022119 +20230620 2025届高一07班 0.762 + +022120 +20230620 2025届高一07班 0.595 + +022121 +20230620 2025届高一07班 0.667 + +022122 +20230620 2025届高一07班 0.849 0.873 + +022123 +20230620 2025届高一07班 0.976 0.518 + +022124 +20230620 2025届高一07班 0.730 0.479 + +022125 +20230620 2025届高一07班 0.929 0.873 0.414 + +022126 +20230620 2025届高一07班 0.952 0.429 0.024 + +022106 +20230620 2025届高一08班 0.821 + +022107 +20230620 2025届高一08班 0.923 + +022108 +20230620 2025届高一08班 0.846 + +022109 +20230620 2025届高一08班 0.564 + +022110 +20230620 2025届高一08班 0.974 + +022111 +20230620 2025届高一08班 0.821 + +022112 +20230620 2025届高一08班 0.897 + +022113 +20230620 2025届高一08班 0.718 + +022114 +20230620 2025届高一08班 0.769 + +022115 +20230620 2025届高一08班 0.385 + +022116 +20230620 2025届高一08班 0.154 + +022117 +20230620 2025届高一08班 0.026 + +022118 +20230620 2025届高一08班 0.795 + +022119 +20230620 2025届高一08班 0.821 + +022120 +20230620 2025届高一08班 0.538 + +022121 +20230620 2025届高一08班 0.718 + +022122 +20230620 2025届高一08班 0.966 0.902 + +022123 +20230620 2025届高一08班 0.957 0.494 + +022124 +20230620 2025届高一08班 0.679 0.433 + +022125 +20230620 2025届高一08班 1.000 0.846 0.497 + +022126 +20230620 2025届高一08班 0.974 0.423 0.008 + +022106 +20230620 2025届高一09班 0.953 + +022107 +20230620 2025届高一09班 0.953 + +022108 +20230620 2025届高一09班 0.860 + +022109 +20230620 2025届高一09班 0.884 + +022110 +20230620 2025届高一09班 0.884 + +022111 +20230620 2025届高一09班 0.814 + +022112 +20230620 2025届高一09班 0.907 + +022113 +20230620 2025届高一09班 0.721 + +022114 +20230620 2025届高一09班 0.837 + +022115 +20230620 2025届高一09班 0.442 + +022116 +20230620 2025届高一09班 0.140 + +022117 +20230620 2025届高一09班 0.000 + +022118 +20230620 2025届高一09班 0.791 + +022119 +20230620 2025届高一09班 0.698 + +022120 +20230620 2025届高一09班 0.535 + +022121 +20230620 2025届高一09班 0.744 + +022122 +20230620 2025届高一09班 0.907 0.837 + +022123 +20230620 2025届高一09班 0.965 0.515 + +022124 +20230620 2025届高一09班 0.705 0.622 + +022125 +20230620 2025届高一09班 1.000 0.946 0.427 + +022126 +20230620 2025届高一09班 0.953 0.450 0.019 + +022106 +20230620 2025届高一10班 0.976 + +022107 +20230620 2025届高一10班 1.000 + +022108 +20230620 2025届高一10班 0.976 + +022109 +20230620 2025届高一10班 0.929 + +022110 +20230620 2025届高一10班 0.952 + +022111 +20230620 2025届高一10班 0.810 + +022112 +20230620 2025届高一10班 0.976 + +022113 +20230620 2025届高一10班 0.667 + +022114 +20230620 2025届高一10班 0.762 + +022115 +20230620 2025届高一10班 0.714 + +022116 +20230620 2025届高一10班 0.286 + +022117 +20230620 2025届高一10班 0.095 + +022118 +20230620 2025届高一10班 0.952 + +022119 +20230620 2025届高一10班 0.833 + +022120 +20230620 2025届高一10班 0.810 + +022121 +20230620 2025届高一10班 0.810 + +022122 +20230620 2025届高一10班 0.929 0.944 + +022123 +20230620 2025届高一10班 0.988 0.646 + +022124 +20230620 2025届高一10班 0.837 0.810 + +022125 +20230620 2025届高一10班 0.982 0.972 0.702 + +022126 +20230620 2025届高一10班 1.000 0.560 0.005 + +022106 +20230620 2025届高一11班 0.930 + +022107 +20230620 2025届高一11班 1.000 + +022108 +20230620 2025届高一11班 1.000 + +022109 +20230620 2025届高一11班 0.791 + +022110 +20230620 2025届高一11班 0.953 + +022111 +20230620 2025届高一11班 0.860 + +022112 +20230620 2025届高一11班 1.000 + +022113 +20230620 2025届高一11班 0.767 + +022114 +20230620 2025届高一11班 0.814 + +022115 +20230620 2025届高一11班 0.721 + +022116 +20230620 2025届高一11班 0.442 + +022117 +20230620 2025届高一11班 0.163 + +022118 +20230620 2025届高一11班 0.907 + +022119 +20230620 2025届高一11班 0.860 + +022120 +20230620 2025届高一11班 0.698 + +022121 +20230620 2025届高一11班 0.837 + +022122 +20230620 2025届高一11班 1.000 0.926 + +022123 +20230620 2025届高一11班 0.981 0.634 + +022124 +20230620 2025届高一11班 0.876 0.782 + +022125 +20230620 2025届高一11班 0.977 0.946 0.645 + +022126 +20230620 2025届高一11班 0.988 0.698 0.116 + +022106 +20230620 2025届高一12班 0.955 + +022107 +20230620 2025届高一12班 1.000 + +022108 +20230620 2025届高一12班 0.977 + +022109 +20230620 2025届高一12班 0.886 + +022110 +20230620 2025届高一12班 0.864 + +022111 +20230620 2025届高一12班 0.886 + +022112 +20230620 2025届高一12班 1.000 + +022113 +20230620 2025届高一12班 0.773 + +022114 +20230620 2025届高一12班 0.773 + +022115 +20230620 2025届高一12班 0.636 + +022116 +20230620 2025届高一12班 0.386 + +022117 +20230620 2025届高一12班 0.091 + +022118 +20230620 2025届高一12班 0.909 + +022119 +20230620 2025届高一12班 0.909 + +022120 +20230620 2025届高一12班 0.727 + +022121 +20230620 2025届高一12班 0.773 + +022122 +20230620 2025届高一12班 0.962 0.909 + +022123 +20230620 2025届高一12班 1.000 0.710 + +022124 +20230620 2025届高一12班 0.735 0.767 + +022125 +20230620 2025届高一12班 0.943 0.939 0.648 + +022126 +20230620 2025届高一12班 1.000 0.731 0.073 + diff --git a/工具v2/统考数据导入.py b/工具v2/统考数据导入.py new file mode 100644 index 00000000..30c97981 --- /dev/null +++ b/工具v2/统考数据导入.py @@ -0,0 +1,62 @@ +texfile = r"D:\mathdeptv2\工具\临时文件\临时_学生用_20230622.tex" # 试卷的.tex源文件(要求每个题号都是左右带有小括号的六位数, 且没有其他这种格式的内容) +excelfile = r"C:\Users\weiye\Documents\wwy sync\临时工作区\高一期末.xlsx" # 统考难度数据所在的excel文件, 小题号为从小到大排列的字符串, 例如 1 2 3 41 42 51 52 6 71 72 73等 +sheetname = "难度统计" # excel中难度数据所在的工作表名 +date = "20230620" # 考试日期 +grade = "2025届高一" # 考试年级 +max_classnum = 12 # 年级参加考试的最大班级班号 +outputfilepath = r"文本文件/metadata.txt" # 输出的用于导入的metadata.txt文件位置 +checkingfilepath = r"临时文件/手动统计结果.txt" # 用于检查结构的文件所在位置 + +from database_tools import * + +df = pd.read_excel(excelfile,sheet_name = sheetname) +data = ReadTextFile(texfile) +problems_list = re.findall(r"\((\d{6})\)",data) + +#生成题号(1~n)与题库id对应 +id_dict = {} +for i in range(len(problems_list)): + id_dict[i+1] = problems_list[i] + +output = "usages\n\n" +checkoutput = "" +#生成题号(1~n)与表格中数据列的对应 +idcol_dict = {} +for i in id_dict: + idcol_dict[i] = [] + mincol = -1 + for col_index in range(mincol+1,len(df.columns)): + col = df.columns[col_index] + if str(col).startswith(str(i)): + idcol_dict[i].append(col_index) + mincol = col_index + if str(i) == str(col): + break + +#生成行号与班级的对应列表 +classrows_dict = {} +for row in df.iloc[:,0]: + if type(row) == int or type(row) == float: + if 1<=row<=12: + row = int(row) + classrows_dict[list(df.iloc[:,0]).index(row)] = str(row).zfill(2) + "班" + +#生成手动统计列表 +for cl in classrows_dict: + classname = grade + classrows_dict[cl] + checkoutput += "[BEGIN]\n" + checkoutput += "## "+date+"\n" + checkoutput += "** "+classname+"\n" + for i in range(len(problems_list)): + id = id_dict[i+1] + results_cols = idcol_dict[i+1] + results = [] + for col in results_cols: + results.append("%.3f"%df.iloc[cl,col]) + checkoutput += id+"\t"+"\t".join(results) + "\n" + output += id + "\n" + "\t".join([date,classname]+results) + "\n\n" + checkoutput += "[END]\n\n\n" + +SaveTextFile(output,outputfilepath) +print("可以在 %s 文件中检查结构"%(SaveTextFile(checkoutput,checkingfilepath))) +os.system("code -w %s"%checkingfilepath) \ No newline at end of file