亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中怎么利用docx模塊實現一個刷題功能

發布時間:2021-07-05 18:27:22 來源:億速云 閱讀:173 作者:Leah 欄目:編程語言

Python中怎么利用docx模塊實現一個刷題功能,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

word文檔是這樣的:

觀察word內容,每道題目的題目內容和題目答案都是一樣的格式,包括縮進、字體等等,那么就可以使用Python對文件的讀操作,瀏覽文檔的內容,在適當的內容區域設置輸入,將輸入與答案進行判斷是否相等,即可實現簡單的刷題功能。

Python默認不支持直接打開doc文件并讀寫,但是可以打開docx文件,但是docx文件必須是經過Word程序制作或轉換而來的。如果文件太多,一個一個手動轉化太麻煩,就要使用程序對文件批量轉化,使用win32com模塊可以使用此功能。

話不多說,放碼!(部分思路在代碼中注釋):

首先批量將doc轉化為Python能夠打開并讀寫的docx文檔:

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

結果是這個樣子的:

再進行我們的正題,開始刷題:

#!/usr/bin/env python# -*- coding: utf-8 -*-# File : MyDemo.py# Author: roohom# Date : 2018/9/17 0017'''刷題腳本  - python對文件讀寫等操作的強大功能    - 使用docx模塊對docx文檔進行讀寫      - python不支持直接打開并讀取word文檔,因此需要使用方法將doc轉化為docx,方法詳見doc_to_docx.py  - 原理    - 打開經轉化后的docx文檔,并逐行讀文件內容    - 判斷是否讀到“正確內容”語句      - 是,設置用戶輸入,提示輸入用戶的答案      - 否,繼續讀操作    - 比較用戶的答案與正確答案是否一樣      - 是,輸出正確提示      - 否,輸出錯誤提示    - 繼續下一題,重復上述操作  - 拓展延伸     - 可以在程序主入口處設置用戶輸入,輸入用戶想要打開的路徑、文件,程序根據文件名、路徑等進行上述操作     - 可以根據用戶輸入情況設置加分減分,并根據全部答案情況,分析錯誤題目,后續將錯題重修整理收集,反饋給用戶'''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('你的答案錯誤!')      break'''def comparison(a, b):  if a == b :    print("你的答案正確!")  else:    print("你的答案錯誤!")if __name__ == '__main__':  file = docx.Document(r"D:\學習區\Python\python二級考試試題\選擇題\python二級考試試題01.docx")  print("==================全國計算機二級考試之Python刷題==================")  for p in file.paragraphs:    m = p.text    if "正確答案: " in m:      ans = input("請輸入你的答案:")      a = "正確答案: {0} ".format(ans)      print(a)      b = m      print(b)      comparison(a, b)      print()      print("==================全國計算機二級考試之Python刷題==================")    else:      print(m)

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

明光市| 开化县| 呼和浩特市| 舞钢市| 攀枝花市| 佛坪县| 都匀市| 嵊泗县| 乌拉特前旗| 临江市| 乡宁县| 万州区| 天台县| 清新县| 涞源县| 唐河县| 深水埗区| 开远市| 环江| 凉城县| 岳阳市| 易门县| 二手房| 天气| 呼伦贝尔市| 波密县| 绥阳县| 同心县| 北川| 昭苏县| 师宗县| 亚东县| 宣威市| 靖江市| 涞源县| 西林县| 秀山| 利辛县| 贞丰县| 莱西市| 昌宁县|