工具v2中新增 统考数据导入 功能

This commit is contained in:
weiye.wang 2023-07-01 20:27:12 +08:00
parent 9796f2e648
commit 1dd53e0bbf
3 changed files with 821 additions and 3 deletions

View File

@ -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)

View File

@ -1,3 +1,758 @@
52 8096
52 8097
53 8096
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

View File

@ -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)