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. 使用Python,dlib中新型、更快、更小的5点面部标志检测器检测人脸、眼睛、鼻子
  2. python package_Python之package、module
  3. Effective java 43返回零长度的数组或者集合而不是null
  4. java CAS原语
  5. Java是如何加载资源文件的?(源码解毒)
  6. iframe 禁止打开新窗口_教育部新政策:禁止中学生复读?
  7. 粉红小猪中有一个叫“快乐小鸡”的游戏
  8. mysql使用between..and 查询日期范围注意事项
  9. anaconda新建环境在PyCharm执行import ssl失败
  10. ldap+ldap-account-manager+svn+apache+php做账号管理
  11. 2022年下半年软考初级程序员备考
  12. Linux部署东方通TongWeb7
  13. IO、NIO和Netty
  14. 如何使用Mediawiki搭建个人wiki系统、以及wiki的部分基本操作和设置
  15. SQL调优指南笔记6:Explaining and Displaying Execution Plans
  16. 饿了么交易系统 5 年演化史
  17. 获取微信公众号历史文章列表页链接
  18. 判断二极管导通例题_通信电源 | 1个二极管是如何改变电流的?
  19. IPv6 三个访问本地地址的小Tips
  20. 自动驾驶控制算法——老王Carsim_Simulink环境搭建步骤

热门文章

  1. 火车运输(NOIP2013)
  2. 牛客练习赛27 F-计数(状压+限制初末状态的矩阵快速幂)
  3. oracle orion —— 测试io性能的工具!
  4. linux相关使用 --大神掠过
  5. Oracle(三)--数据库建表操作
  6. 2020ICPC上海E The Journey of Geor Autumn
  7. 【数据结构和算法】2谈谈算法
  8. [C/C++]7-3 谷歌的招聘
  9. 火影专场:Redis分布式锁实战
  10. linux操作系统原理_Linux后台开发C++学习路线技能加点,已拿鹅厂offer