亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

如何基于Python實現word文檔重新排版

瀏覽:47日期:2022-07-09 15:45:34

介紹

舍友從網上下載的word題庫文檔很亂,手動改了大半天才改了一點,想起python是大名鼎鼎的自動化腳本,于是乎開始了python對word的一頓瞎操作。

如何基于Python實現word文檔重新排版

分析需求

對文檔中的內容進行分析,只留下題目,選項,并且題號要從1開始。

編寫代碼

pip安裝python-docx模塊

讀取word文檔內容(如果是以.doc后綴的文件需另存為.docx文件!)

from docx import Document# 打開文件srcdocx = Document(‘src.docx‘)# 遍歷所有段落for p in srcdocx.paragraphs: print(p.text)

輸出效果:

如何基于Python實現word文檔重新排版

分析所需要刪除的內容:

需求1:

142.對餐后血糖顯著升高的2型糖尿病者,可選用下列哪種藥物(5.0分)

刪除多余數字行

需求2:

42.對餐后血糖顯著升高的2型糖尿病者,可選用下列哪種藥物(5.0分)修改正確的題目序號

需求3:

刪除“窗體底端”“窗體頂端”

需求4:

A、阿卡波糖選項合成一行

需求5:

刪除多余空白行

編寫代碼

本質上來講,實現就是從源文檔中取出一段文字進行處理操作,然后保存到目標文檔。

其中,需求1,3,5的實現,只需要判斷一下取出的內容是否是需要刪除的內容,如果是,則不用保存到目標文檔中,這樣就實現了“間接刪除”。

對于需求2的實現,通過觀察我們不難發現,序號后面總有一個'. ',所以我們只需要獲取到這個的坐標,把前面的錯誤序號刪除,插入正確的序號到處理字符串,最后保存到新文檔,這樣就完成了“修正題目序號”。

需求4的實現類似需求2,只需要找到 “、” 符號就行,然后進行類似操作,就能實現 “合并兩行”。

from docx import Document# 判斷字符串是否為數字def is_number(s): try: float(s) return True except ValueError: pass try: import unicodedata unicodedata.numeric(s) return True except (TypeError, ValueError): pass return False# 修正錯誤題目序號# src,源字符串 nPos,序號結束下標 cnt,正確序號def changeNum(src,nPos,cnt): s = src[:0] + src[nPos:] str_list = list(s) str_list.insert(0, str(cnt)) dest = ‘‘.join(str_list) return dest # 源文檔srcdocx = Document(‘src.docx‘)# 目標文檔outDocx = Document()idx = 0 # 遍歷下標length = len(srcdocx.paragraphs) # 總段落數cnt = 1 # 遍歷序號sum = 1 # 修改總次數while(1): if idx >= length: break src = srcdocx.paragraphs[idx].text # 實現需求1,3,5 if((src == '窗體底端') or (src =='窗體頂端') or (src == '') or (is_number(src))) : print(f'正在修改第{sum}處錯誤 {src}') sum = sum + 1 # 計算修改的次數 idx = idx + 1 continue # 實現需求2 nPos1 = src.find('.') if nPos1 != -1 : # 查找到有序號的行 dest = changeNum(src,nPos1,cnt) print(f'正在修改第{sum}處錯誤 {src}') sum = sum + 1 # 計算修改的次數 cnt = cnt + 1 # 序號后移 outDocx.add_paragraph(dest) # 寫入數據到新word # 實現需求4 nPos2 = src.find(‘、‘) if nPos2 != -1 : src2 = srcdocx.paragraphs[idx+1].text outDocx.add_paragraph(src+src2) idx = idx + 1 print(f'正在修改第{sum}處錯誤 {src},{src2}') sum = sum + 1 # 計算修改的次數 idx = idx + 1 outDocx.save(‘out.docx‘)print(f'修改完成!共計{sum}個錯誤!')

運行效果:

如何基于Python實現word文檔重新排版

最終效果

如何基于Python實現word文檔重新排版

總結

Python還是一個極為強大的工具,并且門檻低,易入門,以后我要多多學習Python!如果我的博客能給你點思路,那就發揮了很大的作用了!人生苦短,我用Python~

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: python
相關文章:
主站蜘蛛池模板: 国产精品青草久久久久福利99 | 亚洲国产高清视频在线观看 | 在线观看久草视频 | 久久一本一区二区三区 | 国产免费高清在线精品一区 | 最新国产中文字幕 | 爽爽爽爽爽爽a成人免费视频 | 香港经典a毛片免费观看看 香港黄页亚洲一级 | 欧美一级www片免费观看 | 中国帅小伙gaysextubevideo | 久爱www成人网免费视频 | 国产亚洲欧洲国产综合一区 | 精品视频福利 | 日韩欧美一区二区三区在线 | 最新国产麻豆精品 | 久久免费播放视频 | 2021年韩国r级理论片在线观看 | 欧美成人特黄级毛片 | 片免费观看网站视频 | 一级免费片 | 激情网址在线观看 | 国产视频不卡在线 | 欧美一级黄色片 | 免费三级黄 | 亚洲精品一区二区三区国产 | 国产成人三级视频在线观看播放 | 成人窝窝午夜看片 | 公么吃奶满足了我苏媚 | 国产a视频精品免费观看 | 图片区亚洲色图 | 欧美一级毛片兔费播放 | 国产视频黄色 | 日本a∨在线观看 | 日本高清视频www夜色资源 | 综合激情婷婷 | 亚洲欧洲国产日产 | 久久精品国产精品亚洲婷婷 | 精品在线不卡 | 超91视频 | 免费一级大毛片a一观看不卡 | 99精品国产成人a∨免费看 |