答题纸对应中可以设置exclude项目, 不录入某些题号某些班级的使用记录

This commit is contained in:
wangweiye7840 2024-03-27 14:46:28 +08:00
parent 0300d5e884
commit 9768e3c9c1
2 changed files with 5 additions and 3 deletions

View File

@ -1917,7 +1917,7 @@ def generateIDtoUsageCorrespondence(idlist,validcols,names): #根据idlist(题
corr_dict[idlist[i]] = collist corr_dict[idlist[i]] = collist
return corr_dict 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" output = "usages\n\n\n"
validflag = True validflag = True
marks = [int(mark) for mark in marks] 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] means_out = [f"{t:.3f}" for t in means]
for id in correspondence_dict: for id in correspondence_dict:
cols = correspondence_dict[id] 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]) diffs = "\t".join([means_out[u] for u in cols])
usages = f"{date}\t{classname}\t{diffs}" usages = f"{date}\t{classname}\t{diffs}"
output += f"{id}\n{usages}\n\n\n" output += f"{id}\n{usages}\n\n\n"

View File

@ -133,6 +133,8 @@ class MyWindow(QWidget,Ui_Form):
paperinfo = FindPaper(xiaoxianpid, self.answersheetseekingpath) paperinfo = FindPaper(xiaoxianpid, self.answersheetseekingpath)
gradename = paperinfo[1] gradename = paperinfo[1]
idlist = paperinfo[2] idlist = paperinfo[2]
excludejson = paperinfo[4]
print(paperinfo)
# print(paperinfo) # print(paperinfo)
zf = zipfile.ZipFile(zipfilepath) zf = zipfile.ZipFile(zipfilepath)
zf.extractall(self.tempdir) #解压zip文件中的所有内容到tempdir zf.extractall(self.tempdir) #解压zip文件中的所有内容到tempdir
@ -141,7 +143,7 @@ class MyWindow(QWidget,Ui_Form):
validcols,marks = generateColIndexandMarks(statsfilepathlist,self.statsfilename,paperinfo) validcols,marks = generateColIndexandMarks(statsfilepathlist,self.statsfilename,paperinfo)
dfcurrent = pd.read_excel(os.path.join(statsfilepathlist[0],self.statsfilename)) dfcurrent = pd.read_excel(os.path.join(statsfilepathlist[0],self.statsfilename))
correspondence_dict = generateIDtoUsageCorrespondence(idlist,validcols,dfcurrent.iloc[1,validcols]) 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开始的使用记录文本 return output #返回由usages开始的使用记录文本
except: except:
return 1 #无法生成就返回1 return 1 #无法生成就返回1