
Python比较与抽取64位是一款python随机抽取对比查找软件,查找谁没填表、重复填表的同学,随机抽取名单,苦于班级事务繁多,在大学里有一堆的表要填,同时总是有同学没看到消息而不填表,本工具诞生于这样的条件下。
根本目的为了知道谁没填表,谁重复填表了。
不仅如此,很多需要平均分配的任务还需要随机抽人(班里分出去了教改班的几个同学和原班级)
需要:python(或嵌入式python)

需要的库:
pandas【核心】(同时因为pandas的原因需要numpy与openpyxl)
os
sys
random
目录架构及解释说明:

__Python比较与抽取.exe:主程序,当然你也可以根据python的传参自行调用,随便你
compare.py:核心文件,主要的运算均在此处
in.xlsx:输入要进行运算的学生姓名
例:

ref.xlsx:参考用的表格
格式如下:

out.xlsx:输出用的表格(均为姓名)

注:python因为个人习惯的原因写了一大堆传参……
在作者看来python就应该专注于运算,别的GUI,判断运行环境啥的还是交给aardio(粘合剂)吧
[/font][/size]
[size=4][font=微软雅黑]import os
import random
import sys
import pandas as pd
def Initialize():
ref_t_lack = pd.read_excel(
os.getcwd() + "\\ref.xlsx",
header=None
)
ref_s_lack = set()
for i in range(len(ref_t_lack)):
ref_s_lack.add(ref_t_lack.iloc[i][0])
ref_s_all = ref_s_lack.copy()
for i in ["AAA", "BBB", "CCC", "DDD", "EEE"]: # 此处应为教改班同学的姓名
ref_s_all.add(i)
in_t = pd.read_excel(os.getcwd() + "\\in.xlsx", header=None)
in_s = set()
for i in range(len(in_t)):
in_s.add(in_t.iloc[i][0])
try:
os.remove(os.getcwd() + "\\out.xlsx")
except:
pass
out_t = pd.DataFrame()
return ref_s_lack, ref_t_lack, ref_s_all, in_t, in_s, out_t
def filter(mode: int,
ref_s_lack: set,
ref_t_lack: pd.DataFrame,
ref_s_all: set,
in_t: pd.DataFrame,
in_s: set,
out_t: pd.DataFrame,
num_pick: int):
re = in_t.duplicated()
for i in range(len(re)):
temp = re.iloc[i]
if(temp == True):
print(in_t.iloc[i][0] + "重复")
if(i == (len(re) - 1)):
print("查重已完成", end="\n\n")
result_lack = ref_s_lack - in_s
result_all = ref_s_all - in_s
if (mode == 0): # 查人除教改班
out_t = pd.concat([out_t, pd.Series(list(result_lack))],
axis=0, ignore_index=True)
print("除教改查人完毕")
elif (mode == 1): # 查人全体
out_t = pd.concat([out_t, pd.Series(list(result_all))],
axis=0, ignore_index=True)
print("全体查人完毕")
if (mode == 20): # 混排除教改班(剩)
temp = list(result_lack)
random.shuffle(temp)
temp = pd.DataFrame(temp)
out_t = pd.concat([out_t, temp], axis=0, ignore_index=True)
print("剩下的同学混排完毕(除教改)")
elif (mode == 21): # 混排全体(剩)
temp = list(result_all)
random.shuffle(temp)
temp = pd.DataFrame(temp)
out_t = pd.concat([out_t, temp], axis=0, ignore_index=True)
print("剩下的同学混排完毕(全体)")
if (mode == 30): # 混排输入(全)
temp = list(in_s)
random.shuffle(temp)
temp = pd.DataFrame(temp)
out_t = pd.concat([out_t, temp], axis=0, ignore_index=True)
print("输入名单混排完毕")
elif (mode == 31): # 混排全体(除教改)(全)
temp = list(ref_s_lack)
random.shuffle(temp)
temp = pd.DataFrame(temp)
out_t = pd.concat([out_t, temp], axis=0, ignore_index=True)
print("全体混排完毕(除教改)")
elif (mode == 32): # 混排全体(全)(全)
temp = list(ref_s_all)
random.shuffle(temp)
temp = pd.DataFrame(temp)
out_t = pd.concat([out_t, temp], axis=0, ignore_index=True)
print("全体混排完毕(含教改)")
if (mode == 40): # 随机抽人(除教改)
out_t = pd.concat([out_t, pd.DataFrame(random.sample(list(ref_s_lack), k=num_pick))],
axis=0, ignore_index=True)
print("随机抽人(除教改)已完成,共抽取{}人".format(num_pick))
elif (mode == 41): # 随机抽人(全)
out_t = pd.concat([out_t, pd.DataFrame(random.sample(list(ref_s_all), k=num_pick))],
axis=0, ignore_index=True)
print("随机抽人(全)已完成,共抽取{}人".format(num_pick))
elif (mode == 42): # 随机抽人(男)(除教改)
temp_list = []
for i in range(len(ref_t_lack)):
if (ref_t_lack.iloc[i][2] == "男"):
temp_list.append(ref_t_lack.iloc[i][0])
out_t = pd.concat([out_t, pd.DataFrame(random.sample(temp_list, k=num_pick))],
axis=0, ignore_index=True)
print("随机抽人(男)(除教改)已完成,共抽取{}人".format(num_pick))
elif (mode == 43): # 随机抽人(女)(除教改)
temp_list = []
for i in range(len(ref_t_lack)):
if (ref_t_lack.iloc[i][2] == "女"):
temp_list.append(ref_t_lack.iloc[i][0])
out_t = pd.concat([out_t, pd.DataFrame(random.sample(temp_list, k=num_pick))],
axis=0, ignore_index=True)
print("随机抽人(女)(除教改)已完成,共抽取{}人".format(num_pick))
out_t.to_excel(os.getcwd() + "\\out.xlsx", header=None, index=False)
mode = int(sys.argv[1])
try:
num_pick = int(sys.argv[2])
except:
num_pick = pd.NA
ref_s_lack, ref_t_lack, ref_s_all, in_t, in_s, out_t = Initialize()
filter(mode, ref_s_lack, ref_t_lack, ref_s_all, in_t, in_s, out_t, num_pick)
备案号:
开发者其他应用

GeoGebra CAS计算器PC电脑版94.1M184人在玩GeoGebraCAS计算器PC电脑版是一款分数三角函数和统计科学计算器,解方程、展开和分解因式,求导数和积分,在理科工具里面算是佼佼者之一,凭借自身的功能全面,操
下载
云上教育APP最新版39.4M1人在玩云上教育是一款学习教育类的APP,是可以提供手机平板使用的一款APP,学生可以通过云上教育来实现与教师的视频和电话的互动学习,使得学习变得更加简单,它使用高
下载
猿辅导电脑客户端144M15769人在玩猿辅导电脑客户端是猿题库推出的一款电脑上课系统,如果你觉得手机上课屏幕太小可以通过手机上的电脑上课吗,大家可以使用猿辅导客户端在电脑上听课。
下载
新东方云教室电脑版183.2M1229人在玩新东方云教室电脑版是一款安装在Windows上的教学辅助软件,专为新东方智能教室设计使用的,能够在这里进行教室直播教学,使用方法简单,适合多个场景使用
下载
智慧中小学电脑版本(免费课程资源)128.9M241人在玩智慧中小学电脑版本(免费课程资源)是一款国家中小学免费课程资源智慧平台-中小学电脑教学软件,PC端可以展示工作学习内容,查看待办事项的提醒,极大地方便了教师
下载
教育技术服务平台客户端(艾教育)35.9M16657人在玩教育技术服务平台电脑版客户端是时下最热门的一款教育类通讯软件,使用者大都是学生的家长。艾教育软件专为教育领域服务的即时通讯产品,为全国各年级学生、家长、教师及教育行政用户之间提供零障碍沟通
下载
Typora写作79.5M531人在玩Typora写作是一款写作的工具,这款写作的工具在之前是完全免费的一款写作的工具,能够满足用户对于写作上面的需求,而现在从1.0正式版本之后就开始进行收费使用,
下载
驾考助教电脑版6.7M5人在玩驾考助教电脑版是一款专注于驾驶技能提升的可以帮助我们在电脑上进行科目二模拟练习软件,它以先进的可视化技术为核心,为备考驾照的学员提供了沉浸式的科目二学
下载
智绘教(教鞭屏幕绘图工具)7.7M21人在玩智绘教(教鞭屏幕绘图工具)是一款全新的教鞭工具,通过这款智绘教(教鞭屏幕绘图工具)来完成教育的服务,满足个人在日常当中的使用,通过这款来帮助老师或者是需要
下载
Paperlib文献管理软件中文版78.7M4人在玩Paperlib文献管理软件中文版是一款能自动匹配文献的发表信息元数据的现代化论文管理工具,这是一个计算机专业的博士生开发的免费开源工具,由于现有的文献管理软
下载