from PySide6.QtWidgets import QWidget, QApplication, QFileDialog from Ui_获取小闲平台使用数据 import Ui_Form from database_tools import * import shutil,zipfile class MyWindow(QWidget,Ui_Form): def __init__(self): super().__init__() self.setupUi(self) self.bind() self.zipfilepath = "" self.lineEdit_threshold.setText("0.75") def bind(self): self.pushButton_selectfilepath.clicked.connect(self.getFilePath) self.pushButton_exec.clicked.connect(self.exec) def getFilePath(self): pathlist = QFileDialog.getOpenFileName(self,"选择文件",".","zip文件(*.zip);;所有文件(*)") self.label_filepath.setText(pathlist[0]) self.zipfilepath = pathlist[0] date_list = re.findall(r"\((\d{8})\).zip",self.zipfilepath) if len(date_list)>0: date = date_list[0] self.lineEdit_date.setText(date) def exec(self): date = self.lineEdit_date.text() threshold = float(self.lineEdit_threshold.text()) if not len(date.strip()) == 8: self.lineEdit_date.setText("日期格式有误") elif not threshold >= 0 or not threshold <= 1: self.lineEdit_threshold.setText("阈值有误") else: tempdir = "临时文件/zips" statsfilename = "小题分_按学号(数学).xlsx" answersheetseekingpath = "../备课组" try: shutil.rmtree(tempdir) except: pass makedir(tempdir) xiaoxianpid = ParseZipname(self.zipfilepath) paperinfo = FindPaper(xiaoxianpid, answersheetseekingpath) gradename = paperinfo[1] idlist = paperinfo[2] zf = zipfile.ZipFile(self.zipfilepath) zf.extractall(tempdir) #解压zip文件中的所有内容到tempdir # papertype = CheckPaperType(tempdir,statsfilename) statsfilepathlist = FindFile(tempdir,statsfilename) validcols,marks = generateColIndexandMarks(statsfilepathlist,statsfilename,paperinfo) dfcurrent = pd.read_excel(os.path.join(statsfilepathlist[0],statsfilename)) correspondence_dict = generateIDtoUsageCorrespondence(idlist,validcols,dfcurrent.iloc[1,validcols]) output = CalculateUsages(statsfilepathlist,statsfilename,gradename,threshold,marks,correspondence_dict,validcols,date) if CheckUsagesValidity(output) == 0: if not self.checkBox_appendflag.isChecked(): SaveTextFile(output,"文本文件/metadata.txt") print("数据文件已输出至metadata.txt") self.label_filepath.setText("数据文件已输出至metadata.txt") os.system("code 文本文件/metadata.txt") else: AppendTextFile("\n\n"+output,"文本文件/metadata.txt") print("数据文件已添加至metadata.txt") self.label_filepath.setText("数据文件已添加至metadata.txt") os.system("code 文本文件/metadata.txt") else: print("数据有误, 可能需要检查每一题的满分数据") self.label_filepath.setText("数据有误, 可能需要检查每一题的满分数据") # def ShowFilePath(self): # 选择文件 # pathlist = QFileDialog.getOpenFileName(self, "选择文件这是标题", ".", "All Files (*);;py文件(*.py *.pyd))") # self.label_FilePath.setText(pathlist[0]) # def getDir(self): # 选择文件夹 # dir = QFileDialog.getExistingDirectory(None, "选择文件夹") # self.label_FilePath.setText(dir) if __name__ == '__main__': app = QApplication([]) windows = MyWindow() windows.show() app.exec()