python实现查收电子文件作业上交情况(完更)
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实现查收电子文件作业上交情况(完更)相关推荐
- python怎么提交作业_python分析作业提交情况
这次做一个比较贴近我实际的东西:python分析作业提交情况. 要求: 将服务器中交作业的学生(根据文件的名字进行提取)和统计成绩的表格中的学生的信息进行比对,输出所有没有交作业的同学的信息(学号和姓 ...
- python面向对象课程大作业 定义一个描述学生基本情况的类,数据成员至少包括 “姓名、性别、学号、年级、所在院系、面向对象的考试日期”
python面向对象课程大作业 按下列要求编写一个完整的程序: 定义一个描述学生基本情况的类,数据成员至少包括"姓名.性别.学号.年级.所在院系.面向对象的考试日期",成员函数至少 ...
- 计算机编程导论python程序设计答案-学堂在线_计算机科学与Python编程导论_作业课后答案...
学堂在线_计算机科学与Python编程导论_作业课后答案 答案: 更多相关问题 近代中国完全沦为半殖民地半封建社会的标志是:A.<马关条约>B.<辛丑条约>C.<凡尔赛和 ...
- python好学吗mooc中文网-2020年大学mooc用Python玩转数据作业答案
2020年大学mooc用Python玩转数据作业答案 更多相关问题 一台电脑先涨价着一%,后降价2一%,这台电脑一现价同原价相比是()A.一样的B.降低了C.提高了直接写出9数 3÷地下%=6×3下% ...
- python123作业怎么提交_python分析作业提交情况
这次做一个比较贴近我实际的东西:python分析作业提交情况. 要求: 将服务器中交作业的学生(根据文件的名字进行提取)和统计成绩的表格中的学生的信息进行比对,输出所有没有交作业的同学的信息(学号和姓 ...
- Python第六周作业
Python第六周作业 1. 正则表达式的点星匹配 2. 计算函数曲线与x轴包围的面积 3. 哥德巴赫猜想 4. 鸡兔同笼B 5. 与7无关的数 6. 完美立方数 7. 高次方程求根 8. 在终端输出 ...
- 用 Python 快速获取基金持仓增减情况 | 更新版
来源:Python数据之道 (ID:PyDataLab) 作者:阳哥 01写在前面 大家好,我是阳哥. 大家知道,在财经领域,Python是有着广泛的用途的.2021年,量化基金开始成为弄潮儿.有不少 ...
- Python第七次作业
Python第七次作业 参考书目:<Python编程从入门到实践> 2018/03/29 8-1.消息 :编写一个名为display_message()的函数,它打印一个句子,指出你在本章 ...
- 北京交通大学Python课程设计大作业(四)——典籍词频统计
北京交通大学Python课程设计大作业(四)--典籍词频统计 文章目录 北京交通大学Python课程设计大作业(四)--典籍词频统计 一.词频统计任务介绍 二.典籍词频统计python源代码如下 三. ...
最新文章
- 使用Python,dlib中新型、更快、更小的5点面部标志检测器检测人脸、眼睛、鼻子
- python package_Python之package、module
- Effective java 43返回零长度的数组或者集合而不是null
- java CAS原语
- Java是如何加载资源文件的?(源码解毒)
- iframe 禁止打开新窗口_教育部新政策:禁止中学生复读?
- 粉红小猪中有一个叫“快乐小鸡”的游戏
- mysql使用between..and 查询日期范围注意事项
- anaconda新建环境在PyCharm执行import ssl失败
- ldap+ldap-account-manager+svn+apache+php做账号管理
- 2022年下半年软考初级程序员备考
- Linux部署东方通TongWeb7
- IO、NIO和Netty
- 如何使用Mediawiki搭建个人wiki系统、以及wiki的部分基本操作和设置
- SQL调优指南笔记6:Explaining and Displaying Execution Plans
- 饿了么交易系统 5 年演化史
- 获取微信公众号历史文章列表页链接
- 判断二极管导通例题_通信电源 | 1个二极管是如何改变电流的?
- IPv6 三个访问本地地址的小Tips
- 自动驾驶控制算法——老王Carsim_Simulink环境搭建步骤
热门文章
- 火车运输(NOIP2013)
- 牛客练习赛27 F-计数(状压+限制初末状态的矩阵快速幂)
- oracle orion —— 测试io性能的工具!
- linux相关使用 --大神掠过
- Oracle(三)--数据库建表操作
- 2020ICPC上海E The Journey of Geor Autumn
- 【数据结构和算法】2谈谈算法
- [C/C++]7-3 谷歌的招聘
- 火影专场:Redis分布式锁实战
- linux操作系统原理_Linux后台开发C++学习路线技能加点,已拿鹅厂offer