学习委员(班长、团支书)查作业软件,查人+重命名

项目来源

作为一个辛勤又负责的学习委员,少不了帮助老师收取作业… 收作业的时候查找谁有没有交是很麻烦的… 所以写个程序来解决这个问题,同时还可以根据名单上的学号序号等,自动添加上学号、序号

紫星文件通紫星文件通是一款本地的文件重命名及查人系统。可以通过导入班级成员名单自动查找未提交的同学,也可以自定义进行文件重命名。主要应用场景有:1.学委作业收集重命名 2.收集文件查找没提交成员 3.核酸检测收集后本地的重命名 4.青年大学习收集后本地的重命名http://box16673726192654.nb3.site.my-qcloud.com/index.html

采用了python进行开发,用pyqt制作了界面

​刚开始想着是用java写的,因为想做个可视化窗口,但是gui都忘的差不多了,所以就想着用C++,毕竟平时打算法题用的都是C++,想着用判断子序列算法来寻找同学提交的作业名中的姓名,但是最后还是选择了python,因为里面的find函数都可以直接找出文件名中的名字,最后代码量都不到50行
但是这个用find函数也有缺陷,如果一个班里有人既有张三也有张三四,即一个人名是另一个人名的前缀的话,就会有bug,但是咱班没有
用了它,以后可以快乐地收作业了

最初只用了40行代码就可以实现了,大家可以看这个

python实现自动化查谁没交作业_falldeep的博客-CSDN博客

功能

1.查找未提交成员

根据导入班级成员名单自动查找未提交成员

 2.文件重命名

可以进行批量重命名,一秒钟完成一万次操作

3.添加序号

可以批量添加序号,并指定起始和位数

4.添加学号

可以批量添加学号,并指定添加位置

源码

import os
 
name_dic = [] #存名单
submit_name = [] #用来存已提交同学的名单
 
path = "C:\\Users\\alan\\Desktop\\重要文件\\20-5软件工程实验一" # 存放作业的文件夹
name_path = "D:\\0pythonProject\\findDick\\studentName" #同学名单txt文件,注意名单即为默认序号!
topic = "" #加的文件名后缀
front = "实验1-软件20-5-"#加的文件前缀名
 
def formate_dir(name_dic, dir_name):  # 格式化文件名 name_dic->同学名字  dir_name->同学提交的文件名
    for name in name_dic:
        index = dir_name.find(name) #找到姓名
        indes_file = dir_name.rfind(".")
        if index >= 0:
            submit_name.append(name)  # 将提交上的同学加入名单
            return front + str(d[name]) + '-' + name + topic + dir_name[indes_file:]# 输出文件的格式
 
    return 'no_name' + dir_name
 
def find_not_submit(name_dic, submit_name): #看看哪位同学没有交作业
    no_submmit = []
    for name in name_dic:
        if name not in submit_name:
            no_submmit.append(name)
    return no_submmit
 
with open(name_path ,'r', encoding='UTF-8') as lines: #读入学生姓名存入到name_dir中
    for line in lines:
        name_dic.append(line.strip())
 
fileList = os.listdir(path)  #读入存放的文件
 
lst = [i for i in range(1, len(name_dic))] #用来存序号
d = {item:price for item, price in zip(name_dic, lst)} #建立字典,用于添加同学们的序号
 
for file_name in fileList:
     new_name = formate_dir(name_dic, file_name) #获得格式化后的文件名
     #os.rename(os.path.join(path, file_name), os.path.join(path, new_name)) 如果需要修改#文件名请开启这个代码
 
# 打印没有提交作业的同学的名单
result = find_not_submit(name_dic, submit_name)
print(result)

效果

 

 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值