用python快速统计学生电脑作业次数

马上就要放暑假了,老师们不要过得太爽。同时也到了非中高考科目老师对学生期末考核时间。

某君是初中一年级的信息技术老师,他的电脑D盘下有个“初一”文件夹,里面除了每个以班级命名的学生名册表(如701.xlsx,702.xlsx)外,还有个“平时作业”文件夹,里面又有各个以班级命名的文件夹(如701,702等),平时上课学生提交的包含学生姓名的电子作业就放在里面。

对学生的考核,平时作业上交情况是非常重要的一个内容,某君准备按学生上交作业次数来考核学生的平时成绩,毕竟多交作业,说明学生的学习态度不错,再结合最后的考察作业完成情况,基本能反映学生的学习情况。

可面对十个班每班50多个学生,每生作业最多十多次的情况,统计工作无疑是巨大的。

手工统计是难,可是电脑统计就简单了。某君用python编了几行代码,十多分钟就轻松搞定。难怪小平同志说:科学技术也是生产力。

import os
import openpyxl

# 选择班级及文件夹
list_class = ['701','702','703','704','705','706','707','708','709','710'] # 班级名称列表,学生名册文件名、班级作业文件夹都以此命名
for i in range(6):
    name_class = list_class[i]  # 选择班级
    name_file = name_class +'.xlsx' # 选择班级学生名册电子表格
    path = 'D:/初一/平时作业/' + name_class # 选择班级文件夹(路径)
    print(name_file, path)

    # 统计学生上交作业次数,即班级作业文件夹中包含学生姓名的文件个数
    wb = openpyxl.load_workbook(name_file,data_only=True)  #打开学生名册文件,如有公式只读数据
    sheet = wb.active
    for x in range(2, sheet.max_row+1): # 学生名单在二列,从第二行开始,第一列是学号,第一行是标题
        # 生成B2,B3等单元格
        name_cell = sheet.cell(row=x, column=2)
        name_stu = name_cell.value  # 提取单元格学生姓名
        print(name_cell, '单元格中的姓名是', name_stu)

        # with open('作业名单.txt') as file:
        for root, dirs, files in os.walk(path):
            # print(files)
            n = 0 # 学生作业次数(以作业文件名中包含学生姓名为准)
            for file in files:
                # print(file)

                if name_stu in file: # 作业文件名中包含学生姓名
                    print(file, '中有', name_stu)
                    n += 1
                    # 在学生姓名后两列写入作业次数
                    sheet.cell(row=x, column=4).value = str(n)

                else:
                    pass
        print('正在向', sheet.cell(row=x, column=4), '中写入作业次数', n)


    wb.save(name_file) # 保存修改后的学生名册文件
    print("作业次数写入成功。")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值