python实现某考试系统生成word试卷
作者:々橙若℃ № 发布时间:2022-05-20 18:29:09
标签:python,考试系统,word
本文实例为大家分享了python实现某考试系统生成word试卷的具体代码,供大家参考,具体内容如下
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
准备条件
1.试题excel信息,存放在名为data.xls的excel文件中
2.安装python依赖的模块信息
pip install xlrd
pip install python-docx
提示:以下是本篇文章正文内容,下面案例可供参考
编码实现
#!/bin/bash env python
import xlrd
import random
from docx import Document
from docx.shared import Pt, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
#打开excel
data = xlrd.open_workbook('data.xls')
#获取工作表
sheet = data.sheet_by_index(0)
class Question:
pass
def create_question():
question_list = []
for i in range(sheet.nrows):
if i>2:
#创建试题类
question = Question()
question.ID = sheet.cell(i,0).value
#添加试题的题目信息
question.subject = sheet.cell(i,1).value
#添加题目类型
question.question_type = sheet.cell(i,2).value
#添加试题选项
question.option = []
question.option.append(sheet.cell(i, 3).value) # A
question.option.append(sheet.cell(i, 4).value) # B
question.option.append(sheet.cell(i, 5).value) # C
question.option.append(sheet.cell(i, 6).value) # D
#添加分值
question.score = sheet.cell(i,7).value
question_list.append(question)
#将试卷题目随机打乱并且返回
random.shuffle(question_list)
return question_list
def create_papper(file_name,paper_name,question_list):
#创建一个文档对象
document = Document()
#设置页眉的位置信息
section = document.sections[0]
header = section.header
p1 = header.paragraphs[0]
p1.text = paper_name
#设置页脚信息
footer = section.footer
p2 = footer.paragraphs[0]
p2.text = '内部试题,禁止泄露'
#写入试卷基本信息
titile = document.add_heading(paper_name,level=1)
#设置对齐方式
titile.alignment = WD_ALIGN_PARAGRAPH.CENTER
#添加一个段落
p3 = document.add_paragraph()
p3.add_run('姓名:____')
p3.add_run('班级:____')
p3.alignment = WD_ALIGN_PARAGRAPH.CENTER
#写入试题信息
for i,question in enumerate(question_list):
subject_paragraph = document.add_paragraph() #添加一个段落
run = subject_paragraph.add_run(str(i+1)+str(question.subject)) #添加题目信息
run.bold = True #设置加粗
subject_paragraph.add_run('【%s】分'%str(question.score))
#打乱选项的顺序
random.shuffle(question.option)
for index,option in enumerate(question.option):
document.add_paragraph(('ABCD')[index]+str(option))
#保存试题
document.save(file_name)
return
if __name__ == '__main__':
question_list = create_question()
#循环生成100份试卷
for item in range(1,100):
create_papper('2021第'+str(item)+'套内部考试试题.docx','2021第一季度内部考试',question_list)
print('over')
实现效果
总结
该案例综合使用了xlrd模块和python-docx模块的一个读写练习
来源:https://blog.csdn.net/u014265398/article/details/115709315
0
投稿
猜你喜欢
- 如下所示:#保存 cookie 到变量import urllib.requestimport http.cookiejarcookie =
- 此文译自Fred Wilson 2010年2月在迈阿密举行的Web未来应用的年会上的演讲谢谢青云推荐了这篇这么好的演说谢谢卓和百忙中抽空帮我
- 概述基于内容的图像检索技术是采用某种算法来提取图像中的特征,并将特征存储起来,组成图像特征数据库。当需要检索图像时,采用相同的特征提取技术提
- 见以下两个文件:showimage.asp Change the HTTP header
- YUI3.2.0 的 transition 模块,通过使用 transition:end 事件实现在 transition 完成后执行其他操
- Access数据库,同时操作大量记录(9500条以上)时报错。错误提示:Microsoft JET Database Engine 错误 &
- 一、什么是RequestsRequests 是Python语编写,基于urllib,采Apache2 Licensed开源协议的 HTTP
- 实例一:题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?程序分析:可填在百位、十位、个位的数字都是1、
- 1 前言在前面的章节中我们牛刀小试,一直在使用python爬虫去抓取数据,然后把数据信息存放在数据库中,至此已经完成了基本的基本信息的处理,
- 本文实例讲述了Python使用dict.fromkeys()快速生成一个字典。分享给大家供大家参考,具体如下:>>> re
- 那么我们现在开始进行安装配置: 1.一般网上
- Python 在命令行解析方面给出了类似的几个选择:自己解析, 自给自足(batteries-included)的方式,以及大量的
- 最近碰到一个mysql5数据库的问题。就是一个标准的servlet/tomcat网络应用,后台使用mysql数据库。问题是待机一晚上后,第二
- StringIO它主要是用在内存读写str中。主要用法就是:from io import StringIOf = StringIO()f.w
- 一、前言python的两个单元测试包分别是 doctest 和 unittest,这两个包的使用起来各有长处,适用于不同的场景doctest
- 我不知道有多少人在使用浏览器的书签,这东东有时候实在是很有用的,比如现在说到的jQuerify书签。jQuerify书签的功能很简单,那就是
- Python简介及入门python为什么是python选择自己喜欢的语言,这往往不容易,更多的是根据需求话说,之前是java,大学用了三年+
- 这篇文章主要介绍了Python爬取豆瓣视频信息代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 一、目的之前在博文SQL Server数据库最小宕机迁移方案中提到了使用了完全备份+差异备份的功能完成了数据库的转移,但是这个方法在遇到了7
- 1 关于 Matplotlib 模块Matplotlib 是一个由 John Hunter 等开发的,用以绘制二维图形的 Python 模块