/youngStudy

青年大学习筛选人员名单

Primary LanguagePython

youngStudy 学习新**,争做新青年

青年大学习筛选未完成的人员名单

yt1.0

资料准备

  1. 一个班级全部姓名 .xlxs表格
  2. 一个新的要晒选人员名单的 .xlsx表格

这两个表格的班级所在的列数要一摸一样,因为是按列来取值

安装步骤

  1. 下载 .exe 文件
  2. 下载配置目录 conf,放在 .exe 的同一级目录
  3. 用自己班级的.xlxs替换conf 目录下的两个.xlxs并改名
  4. 修改配置文件信息 properties.conf
    1. all_name_file是全部人员文件名
    2. new_name_file是要筛选的文件名
    3. index是班级所在 .xlsx中的第几列,从0开始计数
  5. 运行 .exe
  6. 查看conf下的.txt文件,即为未作人员名单

功能

  1. 实现了从 .xlsx 文件中读取数据
  2. 实现了数据的格式化清洗(学号,班级等)
  3. 实现了筛选未人完成的人员名单
  4. 实现了输出人员名单在.txt

缺陷

  1. 全部姓名取值和要筛选的人员都是依赖 .xlsx 文件,且两个文件的格式要一致
  2. 数据的格式化只局限于指定的班级,如果需要修改则要修改源码,重新打包
  3. 筛选出的人员名单没有进行持久化处理,后期无法统计次数
  4. 只做了筛选人员名单作用,没有真正实现提醒功能

yt2.0

资料准备

  1. 一个全班人员信息的 .xlsx表,并导入数据库

  2. 一个要筛选人员的.xlsx

安装步骤

  1. 在Mysql中下载并导入数据库 young_study.sql
  2. 下载 .exe文件
  3. 下载conf文件夹
  4. 用自己班级的.xlxs替换conf 目录下的.xlxs并改名
  5. 修改配置文件信息
  6. 运行.exe文件

解析配置文件

# 文件信息
[file_info]
# 现在要比较的 xlsx 文件,可以自定义名字
new_name_file = "19届·9.27期大学习有效后台数据(周三14:15导出).xlsx"

# 班级信息
[class_info]
# 班级在表中处于第几列,从 0 开始数,如软件1901在第三列,那就是2
index = 2
# 班级姓名
class_name = "软件技术1901"

# 数据格式化的词语
[clear_format]
# 能直接替换到的词语,一般是固定的词语,比如‘空格符号’ ‘班级全称’ ‘班级简称’等。用‘,’分开。
normal_str_list = "默认值(不可刪)","软件技术1901","软件1901"," "
# 一般会变化,但是有规律的字符串,比如学号:前七位一致,后两位为数字,可以采用正则表达式。用‘,’分开。
reg_str_list = "默认值(不可刪)","1904301\d{2}"

# 链接数据库的信息
[mysql_info]
host = "localhost"
user = "root"
passwd = "root"
db = "young_study"

# 电子邮件信息
[email_info]
# 开启电子邮件的方式:QQ邮箱:smtp.qq.com
host = "smtp.qq.com"
# 密钥,授权码
pass = "tjwelqulkqpjhiai"
# user 和 sender 的邮箱必须保持一致
user = "1308129550@qq.com"
sender = "1308129550@qq.com"
# 发送邮箱的标题
subject = "学习新**,争做新青年"
# 发件人姓名
from_header = "软件技术1901团支部"

功能

  1. 优化了全部信息的读取和存储
  2. 实现了自定义的数据清洗功能,包括固定字符串和正则表达式
  3. 优化了未完成人员的记录和输出到文件中
  4. 实现了邮箱提醒功能
  5. 优化了时间,避免多次重复同一期未完成的人员名单

缺陷

  1. 耦合度过高
  2. 去除班级信息重复两次,导致多删除一个人
  3. 未完成统计功能
  4. 未完成数据信息的导入功能
  5. 未完成修改此人是否完成的功能

yt3.0

流程

  1. 先导入班级的所有的信息进入数据库
  2. 将要筛选的.xlsx放在指定位置
  3. 读取.xlsx中的所有的人员信息
  4. 将要筛选的人员信息数据格式化,并存入数据库
  5. 将人员信息读出来,并写入文件中输出
  6. 将人员信息读出来,并用邮件进行提醒
  7. 将已经做的人的标志改为已做