python实验报告实验总结_python还能干这事

  • Post author:
  • Post category:python

上文提到python可以干很多事,很多时候生活中的很多问题都可以用代码解决,尤其是那些反复重复的事。今天就拿读研的时候的一个例子给大家说说,如何用代码解决生活中的问题。

问题:导师带了3个班的图形学(100多号人),期末了,平时成绩已经出来了,但是突然要求要在平时的实验报告上通过分数写评语,如图。这个艰巨的任务就落到了我的头上。当时写了5份我就受不了了,因此想到了通过python去解决。

7aea6bc99be2fc654e21a15752c25adf.png

实验报告插入评语

首先网上搜索了下可以操作word的第三方库,python-docx,安装

pip install python-docx

引入模块Document,打开word

from docx import Document

因为是要根据成绩写评语,因此需要读取成绩。

964c37e987ba7cf176149d886389f960.png

成绩样式

def readScore(name): import csv vec = [] data = [] with open(name, 'rb') as f: reader = csv.reader(f) flag = 1 for row in reader: if flag: flag = 0 continue for i in row: vec.append(i.decode("utf8")) data.append(vec) vec = [] return data

然后就是读取学生的实验报告,实验报告的名称为他们的学号

d369f280ede4d0db020467a1cd570ab8.png

实验报告

def getFileName(folderName): for root, dirs, files in os.walk(folderName): files = files names = [] for file in files: if "docx" in file: names.append(folderName + '/' + file) print "读取文件名字成功" print names return names

然后就是根据分数设置评语,分成四个评语

def getComment(score): score = int(score) comment = ['功能实验完整,报告相对清晰。', '实现功能,报告略简洁。', '缺乏部分功能、不完全符合要求。', '实验不完整,报告敷衍。'] if score >= 85: index = 0 elif score >= 75: index = 1 elif score >= 65: index = 2 else: index = 3 strC = "成绩:" + str(score) + '' + "评语:" + comment[index] + "" + "评定人:代号22" + "时间:2019/12/9" return strC

最后就是把评语插入对应的实验报告啦

def setComment(score, filename): for name in filename: for i in range(len(score)): if score[i][0] in name: file = Document(name) str = getComment(score[i][2]).decode("utf8") file.paragraphs[0].insert_paragraph_before(str) file.save(name) break

感兴趣的同学可以去了解下python-docx,是个很好的处理word的工具。

欢迎留言交流。有啥好的体验,用代码解决了生活中的琐事。或者有想法解决不了的,都可以留言交流。


版权声明:本文为weixin_32646781原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。