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模块的一个读写练习

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python实现Wordcloud生成词云图的示例

    wordcloud是Python扩展库中一种将词语用图片表达出来的一种形式,通过词云生成的图片,我们可以更加直观的看出某篇文章的故事梗概. 首先贴出一张词云图(以哈利波特小说为例): 在生成词云图之前,首先要做一些准备工作 1.安装结巴分词库 pip install jieba Python中的分词模块有很多,他们的功能也都是大同小异,我们安装的结巴分词 是当前使用的最多的类型. 下面我来简单介绍一下结巴分词的用法 结巴分词的分词模式分为三种: (1)全模式:把句子中所有的可以成词的词语都扫描出

  • python解析html提取数据,并生成word文档实例解析

    简介 今天试着用ptyhon做了一个抓取网页内容,并生成word文档的功能,功能很简单,做一下记录以备以后用到. 生成word用到了第三方组件python-docx,所以先进行第三方组件的安装.由于windows下安装的python默认不带setuptools这个模块,所以要先安装setuptools这个模块. 安装 1.在python官网上找到 https://bootstrap.pypa.io/ez_setup.py ,把代码保存到本地并执行: python ez_setup.py 2.下载

  • Python使用win32com模块实现数据库表结构自动生成word表格的方法

    本文实例讲述了Python使用win32com模块实现数据库表结构自动生成word表格的方法.分享给大家供大家参考,具体如下: 下载win32模块 下载链接:https://sourceforge.net/projects/pywin32/files/pywin32/ 连接mysql import MySQLdb db_host = "" db_port = 3306 db_name = "" db_user = "" db_pwd = &quo

  • Python操作Word批量生成文章的方法

    下面通过COM让Python与Word建立连接实现Python操作Word批量生成文章,具体介绍请看下文: 需要做一些会议记录.总共有多少呢?五个地点x7个月份x每月4篇=140篇.虽然不很重要,但是140篇记录完全雷同也不好.大体看了一下,此类的记录大致分为四段.于是决定每段提供四种选项,每段从四选项里随机选一项,拼凑成四段文字,存成一个文件.而且要打印出来,所以准备生成一个140页的Word文档,每页一篇. 需要用到win32com模块(下载链接: http://sourceforge.ne

  • python实现的生成word文档功能示例

    本文实例讲述了python实现的生成word文档功能.分享给大家供大家参考,具体如下: 每月1次的测试费用报销,需要做一个文档.干脆花点时间写个程序吧. # -*- coding: utf-8 -*- from tools import get_data from docx import Document def new_doc(fee_data,doc_path,fee):#新建一个word文档,写入汇总表的数据 document = Document() p_total = document

  • Python基于jieba, wordcloud库生成中文词云

    代码如下 import wordcloud import jieba font = r'C:\Windows\Fonts\simfang.ttf' w = wordcloud.WordCloud(height = 700, width = 1000, font_path=font, \ stopwords=['et','al', 'Crampin', 'and','the', 'Liu'], max_words=30) with open('NSFC.txt', 'r') as f: txt =

  • 使用Python 自动生成 Word 文档的教程

    当然要用第三方库啦 :) 使用以下命令安装: pip install python-docx 使用该库的基本步骤为: 1.建立一个文档对象(可自动使用默认模板建立,也可以使用已有文件). 2.设置文档的格式(默认字体.页面边距等). 3.在文档对象中加入段落文本.表格.图像等,并指定其样式. 4.保存文档. 注:本库仅支持生成Word2007以后版本的文档类型,即扩展名为.docx 的. 下面分步介绍其基本使用方法: 步骤一: from docx import Document doc = Do

  • python实现生成Word、docx文件的方法分析

    本文实例讲述了python实现生成Word.docx文件的方法.分享给大家供大家参考,具体如下: http://python-docx.readthedocs.io/en/latest/index.html 生成word的利器! 一.快速开始 from docx import Document document = Document() 1.段落 加一个段落,下面paragraph 是前面内容的光标指向,后面再该处插入一句话. paragraph = document.add_paragraph

  • 详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)

    思维导图: 效果(语句版): 源码: # -*- coding: utf-8 -*- """ Created on Tue Mar 5 17:59:29 2019 @author: dell """ # ============================================================================= # 步骤: # 分割aaa = jieba.cut(str,cut_all=True/Fa

  • 利用python程序生成word和PDF文档的方法

    一.程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用freemarker这样的模板引擎这样的方式.php中也有一些相应的方法,但在python中将web/html内容生成world文档的方法是很少的.其中最不好解决的就是如何将使用js代码异步获取填充的数据,图片导出到word文档中. 1. unoconv 功能: 1.支持将本地html文档转换为docx

随机推荐