diff --git a/工具v2/database_tools.py b/工具v2/database_tools.py index 615aa0ce..167e2d3c 100644 --- a/工具v2/database_tools.py +++ b/工具v2/database_tools.py @@ -1917,7 +1917,7 @@ def generateIDtoUsageCorrespondence(idlist,validcols,names): #根据idlist(题 corr_dict[idlist[i]] = collist return corr_dict -def CalculateUsages(statsfilepathlist,statsfilename,gradename,threshold,marks,correspondence_dict,validcols,date): #根据统计数据所在的路径,文件名,年级,阈值,分数列表和题号列数(0-len(validcols))对应字典,以及原excel文件中的有效列位置validcols, 日期date, 生成usages的metadata.txt文件的内容, 如果有正确率大于1的则返回False +def CalculateUsages(statsfilepathlist,statsfilename,gradename,threshold,marks,correspondence_dict,validcols,date,exclude = {}): #根据统计数据所在的路径,文件名,年级,阈值,分数列表和题号列数(0-len(validcols))对应字典,以及原excel文件中的有效列位置validcols, 日期date, 生成usages的metadata.txt文件的内容, 如果有正确率大于1的则返回False output = "usages\n\n\n" validflag = True marks = [int(mark) for mark in marks] @@ -1933,7 +1933,7 @@ def CalculateUsages(statsfilepathlist,statsfilename,gradename,threshold,marks,co means_out = [f"{t:.3f}" for t in means] for id in correspondence_dict: cols = correspondence_dict[id] - if not len(cols) == 0: + if not len(cols) == 0 and not (id in exclude and classname[-3:] in generate_classid(exclude[id])): diffs = "\t".join([means_out[u] for u in cols]) usages = f"{date}\t{classname}\t{diffs}" output += f"{id}\n{usages}\n\n\n" diff --git a/工具v2/获取小闲平台使用数据new.py b/工具v2/获取小闲平台使用数据new.py index adb606af..43611cec 100644 --- a/工具v2/获取小闲平台使用数据new.py +++ b/工具v2/获取小闲平台使用数据new.py @@ -133,6 +133,8 @@ class MyWindow(QWidget,Ui_Form): paperinfo = FindPaper(xiaoxianpid, self.answersheetseekingpath) gradename = paperinfo[1] idlist = paperinfo[2] + excludejson = paperinfo[4] + print(paperinfo) # print(paperinfo) zf = zipfile.ZipFile(zipfilepath) zf.extractall(self.tempdir) #解压zip文件中的所有内容到tempdir @@ -141,7 +143,7 @@ class MyWindow(QWidget,Ui_Form): validcols,marks = generateColIndexandMarks(statsfilepathlist,self.statsfilename,paperinfo) dfcurrent = pd.read_excel(os.path.join(statsfilepathlist[0],self.statsfilename)) correspondence_dict = generateIDtoUsageCorrespondence(idlist,validcols,dfcurrent.iloc[1,validcols]) - output = CalculateUsages(statsfilepathlist,self.statsfilename,gradename,threshold,marks,correspondence_dict,validcols,date) + output = CalculateUsages(statsfilepathlist,self.statsfilename,gradename,threshold,marks,correspondence_dict,validcols,date,exclude=excludejson) return output #返回由usages开始的使用记录文本 except: return 1 #无法生成就返回1