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

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

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

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

  2. python123作业怎么提交_python分析作业提交情况

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

  3. python解密md5值_Python之POST提交解密MD5

    Python之POST提交解密MD5 用易语言写出来md5解密软件后感觉一点成就感都没有. 用Python实现就是爽多了,虽说它也很简单,不然我也不会这么短时间会. 显而易见,要解密MD5首先要解决的 ...

  4. python tkinter控件_python GUI作业:使用tkinter的重要控件

    题目1:使用tkinter的重要控件 绘制如下菜单: 图片.png 参考代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-# 技术支持:https://w ...

  5. python读取git日志_Python获取gitlab提交历史!

    工作中的场景,记录下来分享给大家. 需求 公司私有部署了gitlab保存公司代码,希望在发布系统中可以展示项目在gitlab的提交历史,供发布人员选择提交commit记录并构建对应的docker镜像. ...

  6. python自学作业_python学习作业(一)

    python学习作业(一) 1.使用while循环输出12345 68910 2.求1-100所有数的和 3.输出1-100所有数的奇数 4.输出1-100所有数的偶数 5.求1-2+3-4+5--- ...

  7. python用post提交数据_python通过post提交数据的方法

    本文实例讲述了python通过post提交数据的方法.分享给大家供大家参考.具体实现方法如下: # -*- coding: cp936 -*- import urllib2 import urllib ...

  8. python选课系统作业_Python 大作业4:选课系统

    # 作业详细要求见: # 景女神的blog https://www.cnblogs.com/Eva-J/articles/9235899.html import pickle import sys c ...

  9. python作业_python小作业

    1.简述变量命名规范 变量由数字,字母,下划线组成 不能以数字开头 不能使用python中关键字 不能使用中文和拼音 区分大小写 变量名要具有描述性 推荐写法 ​7.1驼峰体AgeOfOldboy = ...

最新文章

  1. 使用Innobackupex快速搭建(修复)MySQL主从架构
  2. 应用更新iOS 开发:应用内实现 更新提醒
  3. python调用电脑蜂鸣器一直响_调用系统蜂鸣器方法
  4. 多线程编程 RW_LOCK 读写锁
  5. asp.net mvc 生成二维码
  6. Java面试题详解二:java中的关键字
  7. 如何编译并使用x264库
  8. sysadmin.php,骆驼IPTV源码及搭建教程(只提供源码和安装视频不提供任何技术支持)-396资源...
  9. 微信小程序开发——调用免费天气api接口(高德、天气API)
  10. 如何在Flatter中以正确的方式存储登录凭证
  11. 参考线--深入了解字体
  12. python实现大富翁_Python3 欧拉计划 问题84 大富翁
  13. 分析优酷/土豆/pptv/乐视 HTML5、m3u8地址
  14. Servlet-千锋-学习笔记
  15. Aspose.OCR for Java Crack by Xacker
  16. 【neo4j】Neo4j-Cypher、py2neo常用操作整理
  17. STM32 FMC原理详解
  18. 洗地机最好的品牌有哪些、智能家居品牌排行
  19. 如何提高Assignment写作效率?
  20. Spring Security入门篇——标签sec:authorize的使用

热门文章

  1. logback-spring.xml 文件路径 相对路径_Web前端必会知识点:VUE路径问题解析-Web前端教程...
  2. 计算机二级晓云是企业人力,全国计算机二级MsOffice真题试卷wore
  3. 如何将android连接到pc,如何将Android屏幕镜像到PC
  4. python的循环控制_控制for循环(python)
  5. java程序linux自己更新自己,Linux下升级JAVA的一个小方法
  6. python调研报告总结体会_调研报告心得体会
  7. C++新特性探究(十八):智能指针
  8. 《Essential C++》笔记之设计一个泛型算法(一)
  9. java中文件,java中文件操作大全
  10. 均值已知检验方差_方差分析