python實(shí)現(xiàn)某考試系統(tǒng)生成word試卷
本文實(shí)例為大家分享了python實(shí)現(xiàn)某考試系統(tǒng)生成word試卷的具體代碼,供大家參考,具體內(nèi)容如下
提示:寫(xiě)完文章后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔
準(zhǔn)備條件
1.試題excel信息,存放在名為data.xls的excel文件中

2.安裝python依賴(lài)的模塊信息
pip install xlrd pip install python-docx
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
編碼實(shí)現(xiàn)
#!/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
#打開(kāi)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:
#創(chuàng)建試題類(lèi)
question = Question()
question.ID = sheet.cell(i,0).value
#添加試題的題目信息
question.subject = sheet.cell(i,1).value
#添加題目類(lèi)型
question.question_type = sheet.cell(i,2).value
#添加試題選項(xiàng)
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)
#將試卷題目隨機(jī)打亂并且返回
random.shuffle(question_list)
return question_list
def create_papper(file_name,paper_name,question_list):
#創(chuàng)建一個(gè)文檔對(duì)象
document = Document()
#設(shè)置頁(yè)眉的位置信息
section = document.sections[0]
header = section.header
p1 = header.paragraphs[0]
p1.text = paper_name
#設(shè)置頁(yè)腳信息
footer = section.footer
p2 = footer.paragraphs[0]
p2.text = '內(nèi)部試題,禁止泄露'
#寫(xiě)入試卷基本信息
titile = document.add_heading(paper_name,level=1)
#設(shè)置對(duì)齊方式
titile.alignment = WD_ALIGN_PARAGRAPH.CENTER
#添加一個(gè)段落
p3 = document.add_paragraph()
p3.add_run('姓名:____')
p3.add_run('班級(jí):____')
p3.alignment = WD_ALIGN_PARAGRAPH.CENTER
#寫(xiě)入試題信息
for i,question in enumerate(question_list):
subject_paragraph = document.add_paragraph() #添加一個(gè)段落
run = subject_paragraph.add_run(str(i+1)+str(question.subject)) #添加題目信息
run.bold = True #設(shè)置加粗
subject_paragraph.add_run('【%s】分'%str(question.score))
#打亂選項(xiàng)的順序
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()
#循環(huán)生成100份試卷
for item in range(1,100):
create_papper('2021第'+str(item)+'套內(nèi)部考試試題.docx','2021第一季度內(nèi)部考試',question_list)
print('over')
實(shí)現(xiàn)效果


總結(jié)
該案例綜合使用了xlrd模塊和python-docx模塊的一個(gè)讀寫(xiě)練習(xí)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python如何解決secure_filename對(duì)中文不支持問(wèn)題
最近使用到了secure_filename,然后悲劇的發(fā)現(xiàn)中文居然不展示出來(lái),本文就詳細(xì)的介紹一下解決方法,感興趣的可以了解一下2021-07-07
Python基于smtplib實(shí)現(xiàn)異步發(fā)送郵件服務(wù)
這篇文章主要介紹了Python基于smtplib實(shí)現(xiàn)異步發(fā)送郵件服務(wù),需要的朋友可以參考下2015-05-05
Python實(shí)現(xiàn)可獲取網(wǎng)易頁(yè)面所有文本信息的網(wǎng)易網(wǎng)絡(luò)爬蟲(chóng)功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)可獲取網(wǎng)易頁(yè)面所有文本信息的網(wǎng)易網(wǎng)絡(luò)爬蟲(chóng)功能,涉及Python針對(duì)網(wǎng)頁(yè)的獲取、字符串正則判定等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
Python使用Beautiful Soup實(shí)現(xiàn)解析網(wǎng)頁(yè)
在這篇文章中,我們將介紹如何使用 Python 編寫(xiě)一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)爬蟲(chóng),以獲取并解析網(wǎng)頁(yè)內(nèi)容。我們將使用 Beautiful Soup 庫(kù),它是一個(gè)非常強(qiáng)大的庫(kù),用于解析和操作 HTML 和 XML 文檔。讓我們開(kāi)始吧2023-05-05
解決pycharm remote deployment 配置的問(wèn)題
今天小編就為大家分享一篇解決pycharm remote deployment 配置的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
Python Selenium Cookie 繞過(guò)驗(yàn)證碼實(shí)現(xiàn)登錄示例代碼
這篇文章主要介紹了Python Selenium Cookie 繞過(guò)驗(yàn)證碼實(shí)現(xiàn)登錄示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
Pandas按周/月/年統(tǒng)計(jì)數(shù)據(jù)介紹
大家好,本篇文章主要講的是Pandas按周/月/年統(tǒng)計(jì)數(shù)據(jù)介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下,方便下次瀏覽2021-12-12

