这次做一个比较贴近我实际的东西: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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python123作业怎么提交_python分析作业提交情况相关推荐

  1. python怎么提交作业_python分析作业提交情况

    这次做一个比较贴近我实际的东西:python分析作业提交情况. 要求: 将服务器中交作业的学生(根据文件的名字进行提取)和统计成绩的表格中的学生的信息进行比对,输出所有没有交作业的同学的信息(学号和姓 ...

  2. python如何提交作业_python分析作业提交情况

    这次做一个比较贴近我实际的东西: 要求: 将服务器中交作业的学生(根据文件的名字进行提取)和统计成绩的表格中的学生的信息进行比对,输出所有没有交作业的同学的信息(学号和姓名),并输出所交的作业中命名格 ...

  3. python atm作业详解_python day4 作业 ATM

    作业需求 指定最大透支额度 可取款 定期还款(每月指定日期还款,如15号) 可存款 定期出账单 支持多用户登陆,用户间转帐 支持多用户 管理员可添加账户.指定用户额度.冻结用户等 目录结构如下: AT ...

  4. python123作业怎么提交_使用python提交作业

    我有一个脚本,用于使用qsub向集群提交多个作业.qsub通常以表单的形式接受作业提交qsub [qsub options] job 在我的工作中,job通常是bash(.sh)或python脚本(. ...

  5. iwrite提交不了作业_在云端,我们把花样作业pick起来!

    人间最美四月天, 正是最好读书时. @SWUSTers,今天, 你背好上学的"云书包"了吗? 想必经历了前段时间的学习, 大家已感受到了自家专业课程的云端魅力~ 云端课程作业大比拼 ...

  6. iwrite提交不了作业_iWrite英语写作教学与评阅系统移动端——学生使用手册

    通过微信搜索公众号:iWrite爱写作,点击"关注". 一.注册 iWrite英语写作教学与评阅系统移动端首页底端显示"登录"按钮. 首次关注,点击" ...

  7. 【Hadoop代码笔记】Hadoop作业提交之客户端作业提交

    1.      概要描述 仅仅描述向Hadoop提交作业的第一步,即调用Jobclient的submitJob方法,向Hadoop提交作业. 2.      详细描述 Jobclient使用内置的Jo ...

  8. 怎么上传云班课的计算机作业,云班课怎么交作业_云班课作业提交教程_3DM手游...

    是如何在云班课平台中提交作业?很多小伙伴还不太清楚.云班课平台中提交作业的类型有很多中,提交方式也有所不同.下面小编来为大家介绍一下云班课提交作业的详细方法教程,一起来看看. 云班课怎么交作业? 老师 ...

  9. MaxCompute Studio使用心得系列3——可视化分析作业运行

    上一篇写分享了通过MaxCompute Studio 编写sql脚本时"编译"功能带来的便捷,这次分享脚本编译好提交运行后,自助查看作业的执行情况. 我们很熟悉的是通过logvie ...

最新文章

  1. 在GridView内访问特定控件
  2. 量子位MEET大会正式启动!邀AI企业共同预见智能科技新未来
  3. 投资计算机方面的策略构建,金融投资简单的策略分享和构建策略的基本思路
  4. 只能匹配第一列吗_VLOOKUP会用了吗?不会的抓紧看
  5. 不要以自己的想法来推测别人的行为
  6. SAwUML – UML-based, contractual software architectures and their formal analysis using SPIN
  7. PLM中BOM核心技术的研究[转]
  8. 据说这篇总结覆盖了一般Python开发面试中可能会问到的大部分问题
  9. python 示例_带有示例的Python File read()方法
  10. android:ClassNotFoundException for Activity class的解决方法
  11. iOS开发中的错误整理,再一次整理通过通知中心来处理键盘,一定记得最后关闭通知中心...
  12. 计算机英语emulated,【英语词汇】 imitate、mimic、mock、 simulate、emulate 这组词都有...
  13. Linux网络协议栈
  14. PHP云软件短信接口,Thinkphp对接华为云短信接口
  15. latex 输入下划线_
  16. Softmax-with-Loss层的计算图 | Softmax梯度推导 | Loss损失函数
  17. matlab 图像白平衡算法,Matlab常用白平衡算法
  18. RTP-RTCP协议分析
  19. 1455 Oulipo
  20. 新年伊始,“3B大战”再次升级。

热门文章

  1. 微信小程序实现循环列表下拉功能(点击事件)
  2. 输出等边三角形php,php打印三角星星方法实列
  3. (个人总结)Linux命令——任意目录查看穿越
  4. 替换html标签内容正则表达式,正则表达式,替换所有HTML标签的简单实例
  5. PHP中strtotime函数有范围吗,PHP中使用strtotime函数注意事项
  6. printf 指针地址_数组指针和指针数组
  7. 自动化测试用java还是python_现在自动化测试用Java好还是Python好?
  8. 前端跨域请求get_前端跨域请求jsonp实现
  9. QComboBox样式
  10. ubuntu16下vue-cli安装