最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用docx模塊實現(xiàn)刷題功能代碼

 更新時間:2020年02月13日 11:13:10   作者:roohom  
今天小編就為大家分享一篇Python使用docx模塊實現(xiàn)刷題功能代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

起由:

前一陣子想要刷一刷國二Python的題庫,千方百計找到題庫之后,打開一個個word文檔,發(fā)現(xiàn)一題一題閱讀很麻煩,而且答案就在題目的下面,閱讀題目的時候想自己做出題目卻又總能不經(jīng)意看到答案,甚煩!遂開始敲代碼,我要一題一題做,還不能看見答案。

著手:

word文檔是這樣的:

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

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

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

首先批量將doc轉(zhuǎn)化為Python能夠打開并讀寫的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,打開Word應(yīng)用程序
  - 打開doc
  - 保存成docx
  - 關(guān)閉word
  - 轉(zhuǎn)入下一個doc并重復(fù)上述操作
'''
 
from win32com import client as wc
 
def doSaveAas():
  word = wc.Dispatch('Word.Application')
  #延時5秒鐘,防止由于系統(tǒng)配置原因還沒打開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二級考試試題\選擇題\python二級考試試題{0}.doc".format(i)
    word_docx_name = "D:\學(xué)習(xí)區(qū)\Python\python二級考試試題\選擇題\python二級考試試題{0}".format(j)
    doSaveAas()
    i += 1
    j += 1
    print("已完成{0}個word從doc到docx的轉(zhuǎn)換".format(k))
    k += 1

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

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

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

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

以上這篇Python使用docx模塊實現(xiàn)刷題功能代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python Pillow 圖像處理庫詳解(常用Pillow函數(shù)及其參數(shù))

    Python Pillow 圖像處理庫詳解(常用Pillow函數(shù)及其參數(shù))

    Pillow,原名PIL(Python Imaging Library),是一個功能強(qiáng)大的Python圖像處理庫,支持多種格式,提供豐富的圖像操作功能,如旋轉(zhuǎn)、縮放、顏色轉(zhuǎn)換等,以及易于使用的API,Pillow支持廣泛的圖像文件格式,并提供圖像過濾、繪制等功能
    2024-09-09
  • Python 錯誤和異常代碼詳解

    Python 錯誤和異常代碼詳解

    這篇文章主要介紹了Python 錯誤和異常代碼詳解,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Python正則表達(dá)式的應(yīng)用詳解

    Python正則表達(dá)式的應(yīng)用詳解

    這篇文章主要介紹了Python中正則表達(dá)式的詳細(xì)教程,正則表達(dá)式是Python學(xué)習(xí)進(jìn)階當(dāng)中的重要內(nèi)容,需要的朋友可以參考下,希望能給你帶來幫助
    2021-08-08
  • dpn網(wǎng)絡(luò)的pytorch實現(xiàn)方式

    dpn網(wǎng)絡(luò)的pytorch實現(xiàn)方式

    今天小編就為大家分享一篇dpn網(wǎng)絡(luò)的pytorch實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python 專題三 字符串的基礎(chǔ)知識

    Python 專題三 字符串的基礎(chǔ)知識

    在Python中最重要的數(shù)據(jù)類型包括字符串、列表、元組和字典等。本篇文章主要講述Python的字符串基礎(chǔ)知識。下面跟著小編一起來看下吧
    2017-03-03
  • CentOS7.3編譯安裝Python3.6.2的方法

    CentOS7.3編譯安裝Python3.6.2的方法

    本篇文章主要介紹了CentOS7.3編譯安裝Python3.6.2的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • 基于python連接oracle導(dǎo)并出數(shù)據(jù)文件

    基于python連接oracle導(dǎo)并出數(shù)據(jù)文件

    這篇文章主要介紹了基于python連接oracle導(dǎo)并出數(shù)據(jù)文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • python一行輸入多值的實現(xiàn)詳解

    python一行輸入多值的實現(xiàn)詳解

    開發(fā)人員通常想要用戶在一行中輸入多個值或者輸入。在python中有兩種方式讓用戶在一行中輸入多個值或者輸入,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • 詳解Python實現(xiàn)多進(jìn)程異步事件驅(qū)動引擎

    詳解Python實現(xiàn)多進(jìn)程異步事件驅(qū)動引擎

    本篇文章主要介紹了詳解Python實現(xiàn)多進(jìn)程異步事件驅(qū)動引擎,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • python爬取天氣數(shù)據(jù)的實例詳解

    python爬取天氣數(shù)據(jù)的實例詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于python爬取天氣數(shù)據(jù)的實例詳解內(nèi)容,有興趣的朋友們學(xué)習(xí)下。
    2020-11-11

最新評論

永寿县| 黄龙县| 武隆县| 墨江| 延川县| 阿拉善左旗| 布拖县| 抚州市| 盖州市| 中卫市| 连平县| 桐乡市| 陇川县| 巴东县| 湖州市| 英吉沙县| 东台市| 乌鲁木齐县| 光山县| 固原市| 中阳县| 澳门| 无棣县| 潜山县| 读书| 三明市| 江门市| 丁青县| 甘洛县| 巍山| 肇州县| 兴山县| 鲁甸县| 宜黄县| 徐州市| 武鸣县| 孟连| 沭阳县| 津市市| 台前县| 郴州市|