【python统计excel未交实验名单】

呜啊

import os
import re
import pandas as pd


def duquyigeshiyan(root="", student_all=None,is_191=False,shiyanxvhao=None):
    a = os.listdir(root)
    students_jiaoleshiyan = []  # 交了实验名单
    students_weijiaoshiyan = []  # 没交实验学生名单
    # 统计交了实验的
    print("学生名单:")
    for i in a:
        try:
            student = re.split("[ _—-]", i)[1]
            # print(student)
        except Exception as e:
            print(e)
            exit(1)
        students_jiaoleshiyan.append(student)
    print("文件夹下文件数量", len(a), "== 交了实验学生数量 ", len(students_jiaoleshiyan))
    # 未交试验的学生名单
    for i in student_all:
        if i not in students_jiaoleshiyan:
            students_weijiaoshiyan.append(i)
            ####191
            if is_191:
                df_1.loc[df_1["姓名"]==i,f"实验{shiyanxvhao}"]=shiyanxvhao
            else:
                df_2.loc[df_2["姓名"]==i,f"实验{shiyanxvhao}"]=shiyanxvhao
    df_1.to_excel("./计科191名单.xlsx",index=False)
    df_2.to_excel("./计科192名单.xlsx",index=False)
    # 统计不是这个班级的
    students_bushizhegeban=[]
    for i in students_jiaoleshiyan:
        if i not in student_all:
            students_bushizhegeban.append(i)
    # result
    print("*" * 10)
    print("实验结果:")
    print(f"实验{root},共有学生{len(student_all)}人,其中交了实验有{len(students_jiaoleshiyan)}人,未交实验{len(students_weijiaoshiyan)}人")
    print(f"未交实验名单:{students_weijiaoshiyan}")
    print(f"不是这个班的学生名单:",students_bushizhegeban)

def huoquxueshengbanji():
    df_1 = pd.read_excel("./计科191名单.xlsx")
    name_191 = list(df_1["姓名"])
    df_2 = pd.read_excel("./计科192名单.xlsx")
    name_192 = list(df_2["姓名"])
    return name_191, name_192


if __name__ == "__main__":
    # duquyigeshiyan(root="./实验4")
    df_1 = pd.read_excel("./计科191名单.xlsx")
    df_2 = pd.read_excel("./计科192名单.xlsx")
    name_191, name_192 = huoquxueshengbanji()  # 两个班级各自的学生列表
    for i in range(1,7):
        duquyigeshiyan(f"./0提交/191/计算机视觉实验{i}",shiyanxvhao=i,student_all=name_191,is_191=True)
        duquyigeshiyan(f"./0提交/192/计算机视觉实验{i}",shiyanxvhao=i,student_all=name_192,is_191=False)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值