电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

如何基于Python實(shí)現(xiàn)word文檔重新排版

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

介紹

舍友從網(wǎng)上下載的word題庫(kù)文檔很亂,手動(dòng)改了大半天才改了一點(diǎn),想起python是大名鼎鼎的自動(dòng)化腳本,于是乎開始了python對(duì)word的一頓瞎操作。

如何基于Python實(shí)現(xiàn)word文檔重新排版

分析需求

對(duì)文檔中的內(nèi)容進(jìn)行分析,只留下題目,選項(xiàng),并且題號(hào)要從1開始。

編寫代碼

pip安裝python-docx模塊

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

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

輸出效果:

如何基于Python實(shí)現(xiàn)word文檔重新排版

分析所需要?jiǎng)h除的內(nèi)容:

需求1:

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

刪除多余數(shù)字行

需求2:

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

需求3:

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

需求4:

A、阿卡波糖選項(xiàng)合成一行

需求5:

刪除多余空白行

編寫代碼

本質(zhì)上來講,實(shí)現(xiàn)就是從源文檔中取出一段文字進(jìn)行處理操作,然后保存到目標(biāo)文檔。

其中,需求1,3,5的實(shí)現(xiàn),只需要判斷一下取出的內(nèi)容是否是需要?jiǎng)h除的內(nèi)容,如果是,則不用保存到目標(biāo)文檔中,這樣就實(shí)現(xiàn)了“間接刪除”。

對(duì)于需求2的實(shí)現(xiàn),通過觀察我們不難發(fā)現(xiàn),序號(hào)后面總有一個(gè)'. ',所以我們只需要獲取到這個(gè)的坐標(biāo),把前面的錯(cuò)誤序號(hào)刪除,插入正確的序號(hào)到處理字符串,最后保存到新文檔,這樣就完成了“修正題目序號(hào)”。

需求4的實(shí)現(xiàn)類似需求2,只需要找到 “、” 符號(hào)就行,然后進(jìn)行類似操作,就能實(shí)現(xiàn) “合并兩行”。

from docx import Document# 判斷字符串是否為數(shù)字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# 修正錯(cuò)誤題目序號(hào)# src,源字符串 nPos,序號(hào)結(jié)束下標(biāo) cnt,正確序號(hào)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‘)# 目標(biāo)文檔outDocx = Document()idx = 0 # 遍歷下標(biāo)length = len(srcdocx.paragraphs) # 總段落數(shù)cnt = 1 # 遍歷序號(hào)sum = 1 # 修改總次數(shù)while(1): if idx >= length: break src = srcdocx.paragraphs[idx].text # 實(shí)現(xiàn)需求1,3,5 if((src == '窗體底端') or (src =='窗體頂端') or (src == '') or (is_number(src))) : print(f'正在修改第{sum}處錯(cuò)誤 {src}') sum = sum + 1 # 計(jì)算修改的次數(shù) idx = idx + 1 continue # 實(shí)現(xiàn)需求2 nPos1 = src.find('.') if nPos1 != -1 : # 查找到有序號(hào)的行 dest = changeNum(src,nPos1,cnt) print(f'正在修改第{sum}處錯(cuò)誤 {src}') sum = sum + 1 # 計(jì)算修改的次數(shù) cnt = cnt + 1 # 序號(hào)后移 outDocx.add_paragraph(dest) # 寫入數(shù)據(jù)到新word # 實(shí)現(xiàn)需求4 nPos2 = src.find(‘、‘) if nPos2 != -1 : src2 = srcdocx.paragraphs[idx+1].text outDocx.add_paragraph(src+src2) idx = idx + 1 print(f'正在修改第{sum}處錯(cuò)誤 {src},{src2}') sum = sum + 1 # 計(jì)算修改的次數(shù) idx = idx + 1 outDocx.save(‘out.docx‘)print(f'修改完成!共計(jì){sum}個(gè)錯(cuò)誤!')

運(yùn)行效果:

如何基于Python實(shí)現(xiàn)word文檔重新排版

最終效果

如何基于Python實(shí)現(xiàn)word文檔重新排版

總結(jié)

Python還是一個(gè)極為強(qiáng)大的工具,并且門檻低,易入門,以后我要多多學(xué)習(xí)Python!如果我的博客能給你點(diǎn)思路,那就發(fā)揮了很大的作用了!人生苦短,我用Python~

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: python
相關(guān)文章:
主站蜘蛛池模板: 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 流量卡中心-流量卡套餐查询系统_移动电信联通流量卡套餐大全 | 技德应用| 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | 搪瓷反应釜厂家,淄博搪瓷反应釜-淄博卓耀 | 软启动器-上海能曼电气有限公司 真空搅拌机-行星搅拌机-双行星动力混合机-广州市番禺区源创化工设备厂 | 深圳货架厂_仓库货架公司_重型仓储货架_线棒货架批发-深圳市诺普泰仓储设备有限公司 | 高考志愿规划师_高考规划师_高考培训师_高报师_升学规划师_高考志愿规划师培训认证机构「向阳生涯」 | 双菱电缆-广州电缆厂_广州电缆厂有限公司 | YT保温材料_YT无机保温砂浆_外墙保温材料_南阳银通节能建材高新技术开发有限公司 | CE认证_FCC认证_CCC认证_MFI认证_UN38.3认证-微测检测 CNAS实验室 | CCC验厂-家用电器|服务器CCC认证咨询-奥测世纪 | 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | 电动葫芦|环链电动葫芦-北京凌鹰名优起重葫芦 | 长江船运_国内海运_内贸船运_大件海运|运输_船舶运输价格_钢材船运_内河运输_风电甲板船_游艇运输_航运货代电话_上海交航船运 | 对辊破碎机-液压双辊式,强力双齿辊,四辊破碎机价格_巩义市金联机械设备生产厂家 | 无痕胶_可移胶_无痕双面胶带_可移无痕胶厂家-东莞凯峰 | 专业深孔加工_东莞深孔钻加工_东莞深孔钻_东莞深孔加工_模具深孔钻加工厂-东莞市超耀实业有限公司 | 钢化玻璃膜|手机钢化膜|钢化膜厂家|手机保护膜-【东莞市大象电子科技有限公司】 | 上海盐水喷雾试验机_两厢式冷热冲击试验箱-巨怡环试 | 选矿设备,选矿生产线,选矿工艺,选矿技术-昆明昆重矿山机械 | COD分析仪|氨氮分析仪|总磷分析仪|总氮分析仪-圣湖Greatlake | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 一体化净水器_一体化净水设备_一体化水处理设备-江苏旭浩鑫环保科技有限公司 | 捷码低代码平台 - 3D数字孪生_大数据可视化开发平台「免费体验」 | 定量包装秤,吨袋包装称,伸缩溜管,全自动包装秤,码垛机器人,无锡市邦尧机械工程有限公司 | 施工电梯_齿条货梯_烟囱电梯_物料提升机-河南大诚机械制造有限公司 | 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 盘扣式脚手架-附着式升降脚手架-移动脚手架,专ye承包服务商 - 苏州安踏脚手架工程有限公司 | 中国在职研究生招生信息网| 中国在职研究生招生信息网| 快速卷帘门_硬质快速卷帘门-西朗门业 | 深圳离婚律师咨询「在线免费」华荣深圳婚姻律师事务所专办离婚纠纷案件 | 铝箔-铝板-花纹铝板-铝型材-铝棒管-上海百亚金属材料有限公司 | 写方案网_方案策划方案模板下载| 减速机三参数组合探头|TSM803|壁挂式氧化锆分析仪探头-安徽鹏宸电气有限公司 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 创富网-B2B网站|供求信息网|b2b平台|专业电子商务网站 | 软文世界-软文推广-软文营销-新闻稿发布-一站式软文自助发稿平台 | 有机肥设备生产制造厂家,BB掺混肥搅拌机、复合肥设备生产线,有机肥料全部加工设备多少钱,对辊挤压造粒机,有机肥造粒设备 -- 郑州程翔重工机械有限公司 |