ps 替换文字_Python操作PPT实现自动查找替换
前言
本文的文字及圖片來源于網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理。
作者:多巴胺愛學習
PS:如有需要Python學習資料的小伙伴可以加點擊下方鏈接自行獲取http://t.cn/A6Zvjdun
為什么要這么干
萬事皆有緣由,以下純屬YY,不想看的可以直接忽略。
OCR文字識別已經很流行了,我們做PPT的時候經常會用文字識別軟件來獲得內容(好吧,我經常這么干。。。)。OCR軟件在識別文字上的準確性已經比較高了,但是標點符合卻差強人意,逗號、分號、冒號之類的經常會被識別為半角,這個時候就需要改了。
當然,我們可以用ppt當中的替換功能手工替換。
再當然,我們還可以用ppt的宏功能實現,使用起來更方便。只是這個宏,目前我還沒寫出來,寫出來后再另外分享了。
本次操作環境
操作系統:win10
Python版本:3.7
使用的第三方庫:python-pptx
如果沒有安裝第三方庫的話,需要先安裝下:
- Windows:pip install python-pptx
- Mac:pip3 install python-pptx
PPT科普
PPT是由許多頁組成的,頁叫做Slide;
每一頁又包含了許多組件,像文本框、表格,這些組件叫做Shape。我們做PPT的時候,文字主要就是放在文本框或者表格中的;
文本框中的文字是以段落的形式存在的,段落叫做Paragraph;
表格是由單元格組成的,單元格叫做Cell,單元格中的文字,也是由段落組成的。如下圖:
代碼實現
代碼實現的原理很簡單,遍歷Slide找Shape;遍歷Shape找Paragraph;遍歷Paragraph找run(run簡單點理解就是文字塊);在run中看看有沒有需要替換的字符,有的話就替換了。
import pptxfromShao pptx import PresentationTEXT_NEED_REPLACE = [('概念', 'Concept'), ('企業', 'Enterprise')]#需要替換的內容,數據結構為“[(被替換內容1,替換內容1),(被替換內容2,替換內容2),……]”FILE_OPEN = r"c:/python/asoursefiles/00301.pptx"#需要打開的文件地址FILE_SAVE = r"c:/python/asoursefiles/demo.pptx"#需要保存的文件地址,不建議直接覆蓋原文件,當然你非要覆蓋原文件也攔不住。這里需要提示的是:需要保存的文件不能是打開的狀態,否則會無法保存。def replace_text(text_frame):#該函數實現的是文本替換功能 for paragraph in text_frame.paragraphs: for run in paragraph.runs: for tt in TEXT_NEED_REPLACE: if tt[0] in run.text: run.text = run.text.replace(tt[0], tt[1])def process_ppt(filename_open, filename_save): prs = Presentation(filename_open) for slide in prs.slides: for shape in slide.shapes: if shape.has_text_frame:#判斷Shape是否含有文本框 text_frame = shape.text_frame replace_text(text_frame)#調用replace_text函數實現文本替換 if shape.has_table:#判斷Shape是否含有表格 table = shape.table for cell in table.iter_cells():#遍歷表格的cell text_frame = cell.text_frame replace_text(text_frame))#調用replace_text函數實現文本替換 prs.save(filename_save)#保存process_ppt(FILE_OPEN, FILE_SAVE)后記
用Python與ppt、word進行交互是一個比較雞肋的想法,99%的情況下,都是閑的無聊,微軟的office功能已經不要太強大了。
用Python操作excel,相比于office,在個別情況(數據量大,或者需要實現的分析步驟太多,太復雜之類的)下可能具有優勢,但通常情況下也用不到。
對于普通辦公需求,從實用角度來說,學好office比學什么python,R,matlab,SPSS之類的有用多了。畢竟office的強大,只有你想不到的,沒有它做不到的(安裝包也夠大的,打開之后電腦風扇轉的哇哇哇的響)。
當然,會點Python,matlab之類的,你找工作的時候可以寫在簡歷上。工作中真碰到坑了,也可以咬咬牙自己去填。
總結
以上是生活随笔為你收集整理的ps 替换文字_Python操作PPT实现自动查找替换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Shanghai Barcamp
- 下一篇: 制作Slider组件