python实现某考试系统生成word试卷
作者:々橙若℃ № 时间:2022-05-20 18:29:09
本文实例为大家分享了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
标签:python,考试系统,word
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
关于导航的探讨
2008-03-21 12:04:00
asp 延时 页面延迟的三种方法
2011-03-31 11:04:00
Python异常对代码运行性能的影响实例解析
2023-10-18 23:35:39
![](https://img.aspxhome.com/file/2023/8/87488_0s.png)
Django缓存Cache使用详解
2023-09-06 02:16:33
Python实现智慧校园自动评教全新版
2023-02-17 05:04:41
![](https://img.aspxhome.com/file/2023/6/98846_0s.png)
Python深度学习pytorch神经网络汇聚层理解
2022-08-05 11:57:15
![](https://img.aspxhome.com/file/2023/3/84143_0s.png)
利用PHP自动生成印有用户信息的名片
2023-09-10 22:30:56
![](https://img.aspxhome.com/file/2023/3/55483_0s.png)
oracle的nvl函数的使用介绍
2023-07-19 14:42:20
SQL SERVER查询所有数据库名,表名,和字段名的语句
2012-01-05 19:25:26
python中uuid模块实例浅析
2022-06-16 01:01:24
Python实现快速傅里叶变换的方法(FFT)
2022-09-18 07:21:47
![](https://img.aspxhome.com/file/2023/3/77873_0s.png)
Oracle中sys和system的区别小结
2009-11-10 20:36:00
python pandas 如何替换某列的一个值
2021-07-01 01:08:07
![](https://img.aspxhome.com/file/2023/7/72217_0s.jpg)
使用python3+xlrd解析Excel的实例
2021-05-09 23:37:33
Python3安装psycopy2以及遇到问题解决方法
2022-12-19 15:41:26
![](https://img.aspxhome.com/file/2023/7/86237_0s.png)
Python统计可散列的对象之容器Counter详解
2023-09-23 18:30:50
![](https://img.aspxhome.com/file/2023/3/70823_0s.png)
js中鼠标滚轮事件详解
2010-02-05 12:20:00
![](https://img.aspxhome.com/file/UploadPic/20102/5/wheelchrome-82s.png)
关于Python常用函数中NumPy的使用
2021-09-10 01:00:35
![](https://img.aspxhome.com/file/2023/5/75375_0s.jpg)
phpmyadmin 数据导入导出问题
2007-08-06 15:23:00
Python实现提取音乐频谱的方法详解
2022-01-27 07:03:08
![](https://img.aspxhome.com/file/2023/2/72072_0s.jpg)