真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python中怎么利用docx模塊實(shí)現(xiàn)一個(gè)刷題功能

Python中怎么利用docx模塊實(shí)現(xiàn)一個(gè)刷題功能,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)是專(zhuān)業(yè)的犍為網(wǎng)站建設(shè)公司,犍為接單;提供網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行犍為網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

word文檔是這樣的:

觀察word內(nèi)容,每道題目的題目?jī)?nèi)容和題目答案都是一樣的格式,包括縮進(jìn)、字體等等,那么就可以使用Python對(duì)文件的讀操作,瀏覽文檔的內(nèi)容,在適當(dāng)?shù)膬?nèi)容區(qū)域設(shè)置輸入,將輸入與答案進(jìn)行判斷是否相等,即可實(shí)現(xiàn)簡(jiǎn)單的刷題功能。

Python默認(rèn)不支持直接打開(kāi)doc文件并讀寫(xiě),但是可以打開(kāi)docx文件,但是docx文件必須是經(jīng)過(guò)Word程序制作或轉(zhuǎn)換而來(lái)的。如果文件太多,一個(gè)一個(gè)手動(dòng)轉(zhuǎn)化太麻煩,就要使用程序?qū)ξ募哭D(zhuǎn)化,使用win32com模塊可以使用此功能。

話不多說(shuō),放碼!(部分思路在代碼中注釋?zhuān)?/p>

首先批量將doc轉(zhuǎn)化為Python能夠打開(kāi)并讀寫(xiě)的docx文檔:

#!/usr/bin/env python# -*- coding: utf-8 -*-# File : 批量將doc轉(zhuǎn)換為docx.py# Author: roohom# Date : 2018/9/17 0017'''使用Word批量將doc轉(zhuǎn)化為docx  - 調(diào)用win32com,打開(kāi)Word應(yīng)用程序  - 打開(kāi)doc  - 保存成docx  - 關(guān)閉word  - 轉(zhuǎn)入下一個(gè)doc并重復(fù)上述操作'''from win32com import client as wcdef doSaveAas():  word = wc.Dispatch('Word.Application')  #延時(shí)5秒鐘,防止由于系統(tǒng)配置原因還沒(méi)打開(kāi)Word就進(jìn)行下一步程序  #time.sleep(5)  doc = word.Documents.Open(r'{0}'.format(word_name)) # 目標(biāo)路徑下的文件  doc.SaveAs(r'{0}'.format(word_docx_name), 16) # 轉(zhuǎn)化后路徑下的文件,16表示docx格式  doc.Close()  word.Quit()if __name__ == '__main__':  k = 1  i = 3  j = 3  while True:    word_name = "D:\學(xué)習(xí)區(qū)\Python\python二級(jí)考試試題\選擇題\python二級(jí)考試試題{0}.doc".format(i)    word_docx_name = "D:\學(xué)習(xí)區(qū)\Python\python二級(jí)考試試題\選擇題\python二級(jí)考試試題{0}".format(j)    doSaveAas()    i += 1    j += 1    print("已完成{0}個(gè)word從doc到docx的轉(zhuǎn)換".format(k))    k += 1

結(jié)果是這個(gè)樣子的:

再進(jìn)行我們的正題,開(kāi)始刷題:

#!/usr/bin/env python# -*- coding: utf-8 -*-# File : MyDemo.py# Author: roohom# Date : 2018/9/17 0017'''刷題腳本  - python對(duì)文件讀寫(xiě)等操作的強(qiáng)大功能    - 使用docx模塊對(duì)docx文檔進(jìn)行讀寫(xiě)      - python不支持直接打開(kāi)并讀取word文檔,因此需要使用方法將doc轉(zhuǎn)化為docx,方法詳見(jiàn)doc_to_docx.py  - 原理    - 打開(kāi)經(jīng)轉(zhuǎn)化后的docx文檔,并逐行讀文件內(nèi)容    - 判斷是否讀到“正確內(nèi)容”語(yǔ)句      - 是,設(shè)置用戶(hù)輸入,提示輸入用戶(hù)的答案      - 否,繼續(xù)讀操作    - 比較用戶(hù)的答案與正確答案是否一樣      - 是,輸出正確提示      - 否,輸出錯(cuò)誤提示    - 繼續(xù)下一題,重復(fù)上述操作  - 拓展延伸     - 可以在程序主入口處設(shè)置用戶(hù)輸入,輸入用戶(hù)想要打開(kāi)的路徑、文件,程序根據(jù)文件名、路徑等進(jìn)行上述操作     - 可以根據(jù)用戶(hù)輸入情況設(shè)置加分減分,并根據(jù)全部答案情況,分析錯(cuò)誤題目,后續(xù)將錯(cuò)題重修整理收集,反饋給用戶(hù)'''import docx'''字符串比較的一種麻煩方法:def comparison(a, b):  ib=0  for ia in range(len(a)):    if ord(a[ia:ia+1])-ord(b[ib:ib+1])==0:      ib=ib+1      if ib==len(b):        print('你的答案正確!')    else:      print('你的答案錯(cuò)誤!')      break'''def comparison(a, b):  if a == b :    print("你的答案正確!")  else:    print("你的答案錯(cuò)誤!")if __name__ == '__main__':  file = docx.Document(r"D:\學(xué)習(xí)區(qū)\Python\python二級(jí)考試試題\選擇題\python二級(jí)考試試題01.docx")  print("==================全國(guó)計(jì)算機(jī)二級(jí)考試之Python刷題==================")  for p in file.paragraphs:    m = p.text    if "正確答案: " in m:      ans = input("請(qǐng)輸入你的答案:")      a = "正確答案: {0} ".format(ans)      print(a)      b = m      print(b)      comparison(a, b)      print()      print("==================全國(guó)計(jì)算機(jī)二級(jí)考試之Python刷題==================")    else:      print(m)

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。


網(wǎng)站名稱(chēng):Python中怎么利用docx模塊實(shí)現(xiàn)一個(gè)刷題功能
分享地址:http://weahome.cn/article/jjhdgh.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部