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源代码如下 三. ...
最新文章
- 分布式与集群是一回事儿么?别让这么简单的问题难住你!
- crackme之018
- JS实现图片的不间断连续滚动
- AJPFX关于collection总结
- gensim出现segmentation Fault解决方案
- 余额宝放10万元,一年收益大概有多少钱?
- vim 命令模式 筛选_10个步骤的筛选器模式
- php一句话后门学习(含免杀)
- Cannot add foreign key constraint 错误
- 遗传相似系数怎么计算_如何计算遗传变异系数
- 经典算法题每日演练——第七题 KMP算法
- java(6) ArrayList源码
- Kubernetes 小白学习笔记(14)--k8s集群路线-join原理
- 电脑机械硬盘秒变移动硬盘!
- 最新十大透支健康行业(2019年版)
- MATLAB08:符号运算
- videojs实现视频列表 点击播放下个视频
- 如何用python请求接口
- 取消wps右键菜单_iRightMouse for Mac (超级右键鼠标辅助工具)
- HTML+CSS大作业: 个人介绍网页制作作业 大学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人博客网站制作成品下载
热门文章
- 等维递推GM(1,1)模型、无偏灰色模型
- 【驱动开发】Windows过滤平台(WFP,Windows Filtering Platform)
- python计算机语言排行榜_TIOBE 1月编程语言排行榜:C语言再度「C 位」出道,Python惜败...
- 最新2020年1月份编程语言排行榜详情
- dblp 数据库(mark)
- NCCL源码解析①:初始化及ncclUniqueId的产生
- a16z:工作的未来是 DAO 和加密网络
- 实战项目:设计实现一个流程编排框架(实现)
- 数字健康-共建共享 火绒安全将亮相2021中华医院信息网络大会(CHINC)
- 计算机游戏《墓园(graveyard)》,墓地模拟器游戏《守墓人》宣布将会推出手机版本...