page contents

python还能干这事?

很多时候生活中的很多问题都可以用代码解决,尤其是那些反复重复的事。今天就拿读研的时候的一个例子给大家说说,如何用代码解决生活中的问题。问题:导师带了3个班的图形学(100多号人),期末...

很多时候生活中的很多问题都可以用代码解决,尤其是那些反复重复的事。今天就拿读研的时候的一个例子给大家说说,如何用代码解决生活中的问题。问题:导师带了3个班的图形学(100多号人),期末了,平时成绩已经出来了,但是突然要求要在平时的实验报告上通过分数写评语,如图。这个艰巨的任务就落到了我的头上。当时写了5份我就受不了了,因此想到了通过python去解决。


v2-622dfa36e28d59cc0a5dd130a2169d2c_720w.jpg


实验报告插入评语首先网上搜索了下可以操作word的第三方库,python-docx,安装

pip install python-docx

引入模块Document,打开word

from docx import Document

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


v2-d158fc63763028480b3185e63aa0af91_720w.jpg


成绩样式

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

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


v2-4b1186108b8e83ca882bfa191d13cd25_720w.jpg


实验报告

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) + '\n' + "评语:" + comment[index] + "\n"\
 + "评定人:代号22\n" + "时间:2019/12/9\n"
 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的工具。


更多技术资讯,请继续关注六星教育社区-程序员编程技术分享交流学习高端论坛。

  • 发表于 2020-02-25 11:27
  • 阅读 ( 643 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1135 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章