python分析作业提交情况
作者:陌上行走 发布时间:2023-07-29 20:59:31
标签:python,作业情况
这次做一个比较贴近我实际的东西:python分析作业提交情况。
要求:
将服务器中交作业的学生(根据文件的名字进行提取)和统计成绩的表格中的学生的信息进行比对,输出所有没有交作业的同学的信息(学号和姓名),并输出所交的作业中命名格式有问题的文件名的信息(如1627406012_E03....)。
提示:
提示:
1、根据服务器文件可以拿到所有交了作业的同学的信息。
2、根据表格可以拿到所有上课学生的信息
3、对1和2中的信息进行比对,找出想要得到的信息
注意:提取服务器中学生交的作业的信息的时候应该考虑到文件格式不对的情况,所以提取信息的时候要做好相关的处理,以避免异常。
下面直接上程序(python3的版本):
#coding:utf-8
import os
import xlrd
"""
此函数用于获取dir文件夹中的文件的内容,dir中不能含有中文名
"""
def getFilesInfo(dir):
fileNum=dir[len(dir)-2:len(dir)] # 取得题目的编号
trueList=[]
errorList=[]
t=os.walk(dir)
for item in t:
for name in item[2]:
if len(name)!=18:
errorList.append(name)
else:
if name[13:15]==fileNum:
trueList.append(name[0:10])
else:
errorList.append(name)
return [trueList,errorList]
# 此函数用于读取xml表格文件中的内容
def readTableContent(fileName):
date=xlrd.open_workbook(fileName)
# sheet_name = date.sheet_names()[0]
stuList=[] # 存放学号和姓名
try: # 获取你要处理的XLS的第一张表
sh = date.sheet_by_index(0)
except:
print("出现问题")
for i in range(2,sh.nrows):
id=sh.row_values(i)[1]
name=sh.row_values(i)[2]
student=(id,name); # 存放学生的学号和姓名的元组
stuList.append(student)
return stuList
address="D://我的文件/python作业批改/2016级老姜班级作业成绩 2016-10-25.xls"
submitStuList=getFilesInfo("D:\E01")
stuList=readTableContent(address) # 存放学生的信息的列表
notSubmitStudent=[] # 存放没有提交作业的学生的信息
for student in stuList:
if student[0] not in submitStuList [0]:
notSubmitStudent.append(student)
print("===================没有交作业的人为=============")
for student in notSubmitStudent:
print(student[0],student[1])
print("===================格式错误的文件为=============")
for error in submitStuList[1]:
print(error)
对于上面的程序中,用到了一个读取表格的包xlrd,这个包需要自己进行下载,在pycharm中,直接进行如下步骤的下载:
1、首先进行如下操作:
2、然后点击“+”号(由于我是提前下载好了的,所以下面的图中有xlrd的包):
3、在输入框中输入包名并搜索
4、完成安装:
关于程序中使用到的os和xlrd的相关知识可以自行查阅相关的文档,这里不再进行详细说明。
下面是py2.7版本的程序:
#coding:utf-8
import os
import xlrd
import xlwt
"""
此函数用于获取dir文件夹中的文件的内容,dir中不能含有中文名
"""
def getFilesInfo(dir):
fileNum=dir[len(dir)-2:len(dir)] # 取得题目的编号
trueList=[]
errorList=[]
t=os.walk(dir)
for item in t:
for name in item[2]:
if len(name)!=18:
errorList.append(name)
else:
if name[13:15]==fileNum:
trueList.append(name[0:10])
else:
errorList.append(name)
return [trueList,errorList]
# 此函数用于读取xml表格文件中的内容
def readTableContent(fileName):
date=xlrd.open_workbook(fileName)
# sheet_name = date.sheet_names()[0]
stuList=[] # 存放学号和姓名
try: # 获取你要处理的XLS的第一张表
sh = date.sheet_by_index(0)
except:
print "出现问题"
for i in range(2,sh.nrows):
id=sh.row_values(i)[1].encode('utf-8')
name=sh.row_values(i)[2]
student=(id,name); # 存放学生的学号和姓名的元组
stuList.append(student)
return stuList
address=unicode("D://我的文件/python作业批改/2016级老姜班级作业成绩 2016-10-25.xls",'utf-8') # 对于中文名的路径要进行转换
submitStuList=getFilesInfo("D:\E01")
stuList=readTableContent(address) # 存放学生的信息的列表
notSubmitStudent=[] # 存放没有提交作业的学生的信息
for student in stuList:
if student[0] not in submitStuList [0]:
notSubmitStudent.append(student)
print "===============没有交作业的人为============="
for student in notSubmitStudent:
print student[0],student[1]
print "===============格式错误的文件为============="
for error in submitStuList[1]:
print error
来源:http://blog.csdn.net/qq_29883591/article/details/54583509
0
投稿
猜你喜欢
- python结构体数组在C语言中我们可以通过struct关键字定义结构类型,结构中的字段占据连续的内存空间,每个结构体占用的内存大小都相同,
- PyTorch与PyTorch Geometric的安装GPU与CUDA,Python,PyTorch的匹配1. 查看Linux系统中GPU
- 时间久了,注册用户和朋友数据库里的废记录渐渐多了起来,尤其是电子邮件地址,请问有什么好的办法可以快速安全地将它们删除吗?试试下面这个办法,它
- jQuery的选择器可谓异常强大,没有什么DOM里的任何数据能逃出它的掌心,这点是我非常喜欢的,以前获取NODE要用getElementBy
- golang 1.7版本中context库被很多标准库的模块所使用,比如net/http和os的一些模块中,利用这些原生模块,我们就不需要自
- 本文实例讲述了Python pandas RFM模型应用。分享给大家供大家参考,具体如下:什么是RFM模型根据美国数据库营销研究所Arthu
- 如何最大限度地实现安全登录功能? 具体方法如下(这是一个程序,为便于说明,中间用虚线“------”将代
- <html><head><style>body{font-family:宋体;font-size:16p
- 不知道工商银行帐号是否是这样的格式, 如果错了请大家见谅!<script language="javascript"
- var long2="1988-0w-07";alert(long2.substring(0,4)+"----
- 简述由于某些原因,在使用 import 时,Python 找不到相应的模块。这时,解释器就会发牢骚 - ImportError。那么,Pyt
- 函数原型pd.read_csv(filepath_or_buffer, sep=',', delimiter=None, h
- 1、页签的表达。页签表达很清晰,当前页签突出,且层级包涵关系明确;看下图,一目了然的感觉,不用疑惑我在那部分里。不信?拿当当的对比一下,你感
- type PipeWritertype PipeWriter struct { // contains
- 本文实例为大家了Python中列表(List)的详解操作方法,供大家参考,具体内容如下1.创建列表。只要把逗号分隔的不同的数据项使用方括号括
- Python项目文件中安装 setup.py安装 setup.py 的过程与安装其他的 Python 包的过程类似。首先,你需要下载或者使用
- 前言Python语言的turtle库是一个直观有趣的图形绘制函数库,是python语言标准库之一。turtle库也叫海龟库,是turtle绘
- JSP 获取spring容器中bean的方法总结方案1(Web中使用):ApplicationContext ct = WebApplica
- 前言在工作中使用的是oracle数据库,平时想在家测试一些sql是否可以跑的过,可惜自己电脑并没有安装oracle数据库,甚至完全不想安装到
- 1、Export/Import的用处 Oracle Export/Import工具用于在数据库之间传递数据。 Export从数据库中导出数据