python自动生成word版本试卷_Python解决问题:生成包含加减练习题的Word文件
簡 ? 介
這里 ? ? 小朋友假期作業有一項是每天做50道題的口算。之前的題目做完了,網上看到的習題集又木有合適的,再不然就是電子版本無法下載的,心想還是自己動手豐衣足食吧。
01 重點和難點
1F
安裝docx模塊
docx模塊封裝可以操作Microsoft Word文件所需要的工具。似乎該模塊只可以在Windows環境下使用,而不可以在Mac OS環境下使用。安裝該模塊很簡單。只需要在命令行模式下執行如下命令:
pipinstallpython-docx
網站:http://python-docx.readthedocs.io/en/latest/user/install.html#install
2F
分清幾個概念
要想使用docx模塊,需要分清word文件的組織結構。docx模塊中document對象對應于word文件,paragraph對象對應于word文件中段落,run對象對應于段落中的一段一段文字。此外,和word文件中段落屬于同一個級別的還有表格table對象。
02 程序代碼
這段程序代碼生成了一個包含25頁計算題的word文件,每一頁計算題包括100道加減題目。具體的看代碼,里面有注釋。
注:把文件拷貝到pycharm編輯器或者其他編輯器中,代碼會變得容易讀一些。
#!/usr/bin/python3# ?-*- coding: utf-8 -*-import docximport randomfrom docx.enum.textimport WD_PARAGRAPH_ALIGNMENTfrom docx.sharedimport *from docx.oxml.nsimport qn'''#docx模塊官方網站,可查詢模塊和函數用法http://python-docx.readthedocs.io/en/latest/'''#定義生成的頁數NUMOFPAGE=25#生成一個word對象filefile=docx.Document()#設置頁面的左右邊界for sectionin file.sections:? ? section.left_margin=Inches(0.8)? ? section.right_margin = Inches(0.8)#k循環用于產生對應頁數for kin range(NUMOFPAGE):#增加每一頁的標題 ? ?para = file.add_paragraph()? ? run = para.add_run("100題tt日期:tt錯題數:tt")#下面兩行用于設置字體和字號 ? ?run.font.name =u"宋體" ? ?run._element.rPr.rFonts.set(qn('w:eastAsia'), u"宋體")? ? run.font.size = Pt(15)? ? para.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT#生成一個20行*5列的表格,每一個單元格中放一個問題等式。表格的作用主要用于排版 ? ?table = file.add_table(rows=20, cols=5)? ? table.style.font.name ="Arial" ? ?table.style.font.size = Pt(12)for iin range(20):for jin range(5):#隨機生成一個等式,在這里借用了第一個數op1來決定加減符號 ? ? ? ? ? ?op1=int(random.randint(1,99))? ? ? ? ? ? op2=int(random.randint(1,99))? ? ? ? ? ? op="+" if op1%2==0 else "-" ? ? ? ? ? ?if op=="+":? ? ? ? ? ? ? ? run=table.cell(i,j).paragraphs[0].add_run(str(op1)+op+str(op2)+"=")? ? ? ? ? ? ? ? run.font.size=Pt(14)? ? ? ? ? ? ? ? table.cell(i,j).paragraphs[0].alignment=WD_PARAGRAPH_ALIGNMENT.LEFTelse:if op1>op2:? ? ? ? ? ? ? ? ? ? run = table.cell(i, j).paragraphs[0].add_run(str(op1) + op +str(op2) +"=")? ? ? ? ? ? ? ? ? ? run.font.size = Pt(14)else:? ? ? ? ? ? ? ? ? ? run = table.cell(i, j).paragraphs[0].add_run(str(op2) + op +str(op1) +"=")? ? ? ? ? ? ? ? ? ? run.font.size = Pt(14)? ? file.add_page_break()#保存文件file.save("D:\math.docx")
生成的文件如下:
總結
以上是生活随笔為你收集整理的python自动生成word版本试卷_Python解决问题:生成包含加减练习题的Word文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 外部网络如何获取网口打印机的ip地址_W
- 下一篇: python维度扩展_在TensorFl