python统计作业提交情况

    科技2022-07-17  126

    文章目录

    1.思路2.实现 2.0版本 https://blog.csdn.net/xiaobai_July/article/details/108930991

    1.思路

    1.1首先需要一个班级的成员名单,包括学号和姓名。通过遍历进行统计提交情况(我现在没有名单,使用字典的方式进行后续比较) 1.2编写遍历文件夹下文件的方法,并且拿到文件的名称,提取姓名和学号(供后边统计使用)。 1.3实现已经提交人员名单. 初始化一个提交人员的list,通过上边遍历的文件学号(即文件夹下存在的都是已经提交的),添加到这个list中。 1.4实现未提交作业的人员名单. 通过遍历原始字典下,进行提交名单的list嵌套。使用if进行判断,如果字典中存在提交名单的内容,把它剔除掉。最后把字典转成list输出。 1.5实现生成未提交人员的excel文件(固定代码,按照模板使用即可)

    2.实现

    2.1运行截图

    2.2代码

    import os import xlwt def findAllFile(base): for root, ds, fs in os.walk(base): for f in fs: yield f def main(): base = r'C:\Users\19594\Desktop\软件3班作业' count=0 num_name={ '01': '三班1号', '02': '三班2号', '03': '三班3号', '04': '三班4号', '05': '三班5号', '06': '三班6号', '07': '三班7号', '08': '三班8号', '09': '三班9号', '10': '三班10号', '11': '三班11号', '12': '三班12号', '13': '三班13号', '14': '三班14号', '15': '三班15号', '16': '三班16号', '17': '三班17号', '18': '三班18号', '19': '三班19号', '20': '三班20号', '21': '三班21号', '22': '三班22号', '23': '三班23号', '24': '三班24号', '25': '三班25号', '26': '三班26号', '27': '三班27号', '28': '三班28号', '29': '三班29号', '30': '三班30号', '31': '三班31号', '32': '三班32号', '33': '三班33号', '34': '三班34号', '35': '三班35号', '36': '三班36号', '37': '三班37号' } submit_list=[] submit_list2=[] for i in findAllFile(base): for a in num_name: if i.split("202010203")[1][0:2]==a: submit_list.append(a+''+num_name[a]) submit_list2.append(a) count += 1 for key in list(num_name.keys()): for i in submit_list2: if key==i: del num_name[key] continue print('共提交',count,'份作业') print('提交名单',submit_list) print('未交', len(num_name),'人,名单',list(num_name.values())) print('是否生成excel文件?1是2否') flag = input() if flag=='1': print('生成完毕,请在桌面查看') # 创建工作簿 f = xlwt.Workbook() # 创建一个sheet sheet1 = f.add_sheet('未交作业名单', cell_overwrite_ok=True) col1 = sheet1.col(0) col1.width = 256 * 38 # 第一个是行,第二格式列 都是从0开始 for i in range(0, len(list(num_name.keys()))): sheet1.write(i, 0, list(num_name.values())[i]) # 保存文件 f.save(r"C:\Users\19594\Desktop\名单.xls") else: print('取消生成') if __name__ == '__main__': main()
    Processed: 0.010, SQL: 8