import requests import gradio as gr import openpyxl import string import re import os import time import shutil def fb(name): # print(name) name = name.replace("加坑", "", 1) name = name.replace("手速", "", 1) name = name.replace("麦序", "", 1) name = name.replace("空一", "", 1) name = name.replace("空二", "", 1) name = name.replace("空三", "", 1) name = name.replace("空1", "", 1) name = name.replace("空2", "", 1) name = name.replace("空3", "", 1) name = name.replace("关厅", "", 1) name = name.replace("全麦", "", 1) name = name.replace("0", "",1) name = name.replace("1", "", 1) name = name.replace("2", "",1) name = name.replace("3", "",1) name = name.replace("4", "",1) name = name.replace("5", "",1) name = name.replace("6", "",1) name = name.replace("7", "", 1) name = name.replace("8", "", 1) name = name.replace("st", "", 1) name = name.replace("ST", "", 1) name = name.replace("St", "", 1) name = name.replace("sT", "", 1) name = re.sub(r"满$", " ", name) name = re.sub(r"齐$", " ", name) name = re.sub(r"手速$", " ", name) name = re.sub(r"加坑$", " ", name) z = re.sub(r"\(.*?\)", "", name) z = re.sub(r"(.*?\)", "", z) res = re.compile("[^\u4e00-\u9fa5^a-z^A-Z^0-9]") return res.sub("",z) def lj(ws): npps = {} for mxl in ws["d"]: # print(mxl.value.split()) if(mxl.value!=None): for name in mxl.value.split("\n"): name = name.lstrip() if(len(name)<12): if(name!="截止麦序表:"): if (name != "当前麦序表:"): if (name.isspace() != True): pname = fb(name) print("日志==========================》陪陪名称" + pname) if (pname != ""): npps[pname] = npps.get(pname, 0) + 1 else: for xname in name.split("@"): if (xname != "截止麦序表:"): if (xname != "当前麦序表:"): if (xname.isspace() != True): pname = fb(xname) print("日志==========================》陪陪名称" + pname) if (pname != ""): npps[pname] = npps.get(pname, 0) + 1 for mxl in ws["e"]: # print(mxl.value.split()) if(mxl.value!=None): for name in mxl.value.split("\n"): name = name.lstrip() if(len(name)<12): if(name!="截止麦序表:"): if (name != "当前麦序表:"): if(name.isspace()!=True): pname = fb(name) print("日志==========================》陪陪名称"+pname) if(pname!=""): npps[pname] = npps.get(pname,0)+1 else: for xname in name.split("@"): if (xname != "截止麦序表:"): if (xname != "当前麦序表:"): if (xname.isspace() != True): pname = fb(xname) print("日志==========================》陪陪名称" + pname) if (pname != ""): npps[pname] = npps.get(pname, 0) + 1 return npps def calculate(file): # 打卡表 wb = openpyxl.load_workbook(file.name) ws = wb.active wz = "/tmp/gradio/" print(file.name) files = os.listdir(wz) print("文件信息") # 打印所有文件名 for xfile in files: print("--------------") print(xfile) if (os.path.isdir(wz + xfile)): ftime = time.strftime("%Y-%m-%d", time.localtime(os.stat(wz + xfile).st_ctime)) mtime = time.strftime("%Y-%m-%d", time.localtime(time.time())) print(time.strftime("%Y-%m-%d", time.localtime(os.stat(wz + xfile).st_ctime))) print(time.strftime("%Y-%m-%d", time.localtime(time.time()))) if (ftime != mtime): shutil.rmtree(wz + xfile) print(ftime, xfile, "移除") npps = lj(ws) text = "名称 麦序" xpp = dict(sorted(npps.items(),key=lambda item : item[1],reverse=True)) # print(xpp) xhs = 1 for k,v in xpp.items(): text=text+"\n"+str(xhs)+"."+k+" = "+str(v) xhs+=1 return text def reverse(file): return calculate(file) demo = gr.Interface(reverse, inputs=["file"],outputs= "text") demo.launch()