python实现查收电子文件作业上交情况(完更)

本文涉及正则匹配、生成表格

代码段已更新,新增匹配未交名单功能

每周都要收班里的C语言作业,上一个收C语言作业的人已经查文件查疯了,我不能重蹈覆辙,所以我觉得写一个脚本来记录谁交了谁没交。编写的脚本确实节省了很多时间。

a.代码

# -*- coding: utf-8 -*-
import os
import xlwt
import re
import xlrddef readname():filePath = '.'name = os.listdir(filePath)return namedef find_chinses(s):b=[]for i in s:a = ".*?([\u4E00-\u9FA5]+).*?"c=re.findall(a, i)if c and c!='作业上交情况':b.extend(c)return bname = readname()
name=find_chinses(name)
workbook = xlwt.Workbook(encoding = 'utf-8')
worksheet = workbook.add_sheet('work_sheet',cell_overwrite_ok=True)
index1=[]
index2=[]
index3=[]
workbook0=xlrd.open_workbook("list.xls")#which stores all the names
sheet=workbook0.sheet_by_index(0)
allnames=sheet.col_values(0)#some variable define.x=set(name)
y=set(allnames)
nowork=y-xfor i in range(len(name)):index1.append(i)
for j in range(len(allnames)):index2.append(j)
for k in range(len(nowork)):index3.append(k)#make 3 index in order to rank the names in zip.zipped1=zip(name,index1)
zipped2=zip(allnames,index2)
zipped3=zip(nowork,index3)
worksheet.write(0,0,'已交名单')
worksheet.write(0,1,'全班名单')
worksheet.write(0,2,'未交名单')
for c,d in zipped2:worksheet.write(d+1,0,c)
for a,b in zipped1:worksheet.write(b+1,1,a)
for e,f in zipped3:worksheet.write(f+1,2,e)
workbook.save('作业上交情况.xls')

b.代码讲解

先读取当前文件夹中所有文件的名字,然后再找出这些文件夹中的中文。

os.listdir(path) : 用于返回指定的文件夹包含的文件或文件夹的名字的列表。返回指定路径下的文件和文件夹列表。
参数:

path: 需要列出的目录路径。如路径为代码所在目录,则只需填'.'

re.findall():这个方法我确实看不太懂,网上说有两种模式,具体我也看不太懂,find_chinese这个函数是我在网上找代码拼凑起来的。如果需要修改匹配规则,可以查看百度统一码。

因为每次写入行数要加一,但嵌套for循环好像不太行(至少我做不到),所以使用了字典,将索引和名称放在字典中,好让for循环遍历时有两个变量。

C. 匹配未交名单

这里使用set()函数来创建姓名集合。现创建一个已交名单,再创建一个全班名单,最后通过两个集合相减来达到得出未交名单的效果。

python实现查收电子文件作业上交情况(完更)相关推荐

  1. python怎么提交作业_python分析作业提交情况

    这次做一个比较贴近我实际的东西:python分析作业提交情况. 要求: 将服务器中交作业的学生(根据文件的名字进行提取)和统计成绩的表格中的学生的信息进行比对,输出所有没有交作业的同学的信息(学号和姓 ...

  2. python面向对象课程大作业 定义一个描述学生基本情况的类,数据成员至少包括 “姓名、性别、学号、年级、所在院系、面向对象的考试日期”

    python面向对象课程大作业 按下列要求编写一个完整的程序: 定义一个描述学生基本情况的类,数据成员至少包括"姓名.性别.学号.年级.所在院系.面向对象的考试日期",成员函数至少 ...

  3. 计算机编程导论python程序设计答案-学堂在线_计算机科学与Python编程导论_作业课后答案...

    学堂在线_计算机科学与Python编程导论_作业课后答案 答案: 更多相关问题 近代中国完全沦为半殖民地半封建社会的标志是:A.<马关条约>B.<辛丑条约>C.<凡尔赛和 ...

  4. python好学吗mooc中文网-2020年大学mooc用Python玩转数据作业答案

    2020年大学mooc用Python玩转数据作业答案 更多相关问题 一台电脑先涨价着一%,后降价2一%,这台电脑一现价同原价相比是()A.一样的B.降低了C.提高了直接写出9数 3÷地下%=6×3下% ...

  5. python123作业怎么提交_python分析作业提交情况

    这次做一个比较贴近我实际的东西:python分析作业提交情况. 要求: 将服务器中交作业的学生(根据文件的名字进行提取)和统计成绩的表格中的学生的信息进行比对,输出所有没有交作业的同学的信息(学号和姓 ...

  6. Python第六周作业

    Python第六周作业 1. 正则表达式的点星匹配 2. 计算函数曲线与x轴包围的面积 3. 哥德巴赫猜想 4. 鸡兔同笼B 5. 与7无关的数 6. 完美立方数 7. 高次方程求根 8. 在终端输出 ...

  7. 用 Python 快速获取基金持仓增减情况 | 更新版

    来源:Python数据之道 (ID:PyDataLab) 作者:阳哥 01写在前面 大家好,我是阳哥. 大家知道,在财经领域,Python是有着广泛的用途的.2021年,量化基金开始成为弄潮儿.有不少 ...

  8. Python第七次作业

    Python第七次作业 参考书目:<Python编程从入门到实践> 2018/03/29 8-1.消息 :编写一个名为display_message()的函数,它打印一个句子,指出你在本章 ...

  9. 北京交通大学Python课程设计大作业(四)——典籍词频统计

    北京交通大学Python课程设计大作业(四)--典籍词频统计 文章目录 北京交通大学Python课程设计大作业(四)--典籍词频统计 一.词频统计任务介绍 二.典籍词频统计python源代码如下 三. ...

最新文章

  1. 分布式与集群是一回事儿么?别让这么简单的问题难住你!
  2. crackme之018
  3. JS实现图片的不间断连续滚动
  4. AJPFX关于collection总结
  5. gensim出现segmentation Fault解决方案
  6. 余额宝放10万元,一年收益大概有多少钱?
  7. vim 命令模式 筛选_10个步骤的筛选器模式
  8. php一句话后门学习(含免杀)
  9. Cannot add foreign key constraint 错误
  10. 遗传相似系数怎么计算_如何计算遗传变异系数
  11. 经典算法题每日演练——第七题 KMP算法
  12. java(6) ArrayList源码
  13. Kubernetes 小白学习笔记(14)--k8s集群路线-join原理
  14. 电脑机械硬盘秒变移动硬盘!
  15. 最新十大透支健康行业(2019年版)
  16. MATLAB08:符号运算
  17. videojs实现视频列表 点击播放下个视频
  18. 如何用python请求接口
  19. 取消wps右键菜单_iRightMouse for Mac (超级右键鼠标辅助工具)
  20. HTML+CSS大作业: 个人介绍网页制作作业 大学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人博客网站制作成品下载

热门文章

  1. 等维递推GM(1,1)模型、无偏灰色模型
  2. 【驱动开发】Windows过滤平台(WFP,Windows Filtering Platform)
  3. python计算机语言排行榜_TIOBE 1月编程语言排行榜:C语言再度「C 位」出道,Python惜败...
  4. 最新2020年1月份编程语言排行榜详情
  5. dblp 数据库(mark)
  6. NCCL源码解析①:初始化及ncclUniqueId的产生
  7. a16z:工作的未来是 DAO 和加密网络
  8. 实战项目:设计实现一个流程编排框架(实现)
  9. 数字健康-共建共享 火绒安全将亮相2021中华医院信息网络大会(CHINC)
  10. 计算机游戏《墓园(graveyard)》,墓地模拟器游戏《守墓人》宣布将会推出手机版本...