python分析作业提交情况
作者:陌上行走 时间:2023-07-29 20:59:31
这次做一个比较贴近我实际的东西: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
标签:python,作业情况
0
投稿
猜你喜欢
通过缓存+SQL修改优雅地优化慢查询
2024-01-21 12:01:16
php修改NetBeans默认字体的大小
2024-06-05 09:48:07
通过C++学习Python
2023-02-16 21:33:17
python speech模块的使用方法
2023-07-28 09:14:06
Vue 中使用 typescript的方法详解
2024-05-09 15:10:12
JavaScript简单实现弹出拖拽窗口(一)
2024-04-28 09:42:56
Django项目使用ckeditor详解(不使用admin)
2022-12-15 01:52:52
Django使用Celery实现异步发送邮件
2022-11-04 17:50:47
确定能够释放空间的SQL Server数据库文件的脚本
2010-07-31 12:36:00
Python 3.x基于Xml数据的Http请求方法
2021-05-17 23:45:18
jquery实现表单验证并阻止非法提交
2023-07-02 05:31:28
keras 多任务多loss实例
2022-09-21 12:49:33
Python 实现训练集、测试集随机划分
2023-02-12 01:41:24
用户研究角度看设计(2):用户为何视若无睹
2009-01-09 12:51:00
基于python 二维数组及画图的实例详解
2021-12-13 08:27:46
Django CBV与FBV原理及实例详解
2023-02-14 20:39:01
MySQL 5.5 range分区增加删除处理的方法示例
2024-01-22 21:16:19
vue移动端实现手指滑动效果
2023-07-02 16:48:49
mac os10.12安装mysql5.7.18教程
2024-01-19 14:08:27
SQL SERVER 的SQL语句优化方式小结
2024-01-25 02:11:12