Python實(shí)現(xiàn)批量提取PPT中的文字
介紹
- 本文將介紹如何使用
pptx
和docx
庫來將PPT中的文字提取到Word中。 - 本文假設(shè)你已經(jīng)安裝了python和這兩個(gè)庫。
- 本文的場景是:你需要將一個(gè)PPT文件中的所有文字內(nèi)容提取出來,并按照原來的格式和順序?qū)懭氲揭粋€(gè)Word文檔中。
準(zhǔn)備工作
首先,我們需要導(dǎo)入pptx
和docx
庫,以及其他一些輔助庫,如下:
import pptx from docx import Document from docx.shared import Pt import os
這些庫的作用是:
pptx
庫可以讓我們讀取和修改PPT文件的內(nèi)容和格式。docx
庫可以讓我們創(chuàng)建和編輯Word文檔的內(nèi)容和格式。Pt
是一個(gè)輔助函數(shù),可以將字號(hào)轉(zhuǎn)換為磅(point)單位,方便我們設(shè)置字體大小。os
庫可以讓我們操作文件系統(tǒng),例如創(chuàng)建目錄,保存文件等。
然后,我們需要定義一些常量,如文件名,字體,顏色等,如下:
# 文件名 PPT_FILE = 'source.pptx' WORD_FILE = 'output.docx' # 字體 FONT_NAME = '宋體' FONT_SIZE = 12
這些常量的作用是:
PPT_FILE
是我們要提取文字的PPT文件的名稱,你可以根據(jù)你自己的文件名進(jìn)行修改。WORD_FILE
是我們要寫入文字的Word文檔的名稱,你可以根據(jù)你自己的喜好進(jìn)行修改。FONT_NAME
是我們要使用的字體的名稱,你可以根據(jù)你自己的喜好進(jìn)行修改。FONT_SIZE
是我們要使用的字體的大小,你可以根據(jù)你自己的喜好進(jìn)行修改。
接下來,我們需要加載PPT文件和創(chuàng)建Word文檔對(duì)象,如下:
# 加載PPT文件 prs = pptx.Presentation(PPT_FILE) # 創(chuàng)建Word文檔對(duì)象 doc = Document()
這些代碼的作用是:
prs = pptx.Presentation(PPT_FILE)
是用pptx
庫的Presentation
類來創(chuàng)建一個(gè)PPT文件的對(duì)象,我們可以通過這個(gè)對(duì)象來訪問和修改PPT文件的內(nèi)容和格式。doc = Document()
是用docx
庫的Document
類來創(chuàng)建一個(gè)空白的Word文檔的對(duì)象,我們可以通過這個(gè)對(duì)象來添加和編輯Word文檔的內(nèi)容和格式。
提取PPT文字
首先,我們需要遍歷PPT文件中的每一個(gè)幻燈片,如下:
# 遍歷PPT文件中的每一個(gè)幻燈片 for slide in prs.slides: # 在此處添加代碼
這段代碼的作用是:
for slide in prs.slides:
是用一個(gè)for
循環(huán)來遍歷PPT文件對(duì)象prs
中的每一個(gè)幻燈片對(duì)象slide
,我們可以通過這個(gè)對(duì)象來訪問和修改幻燈片的內(nèi)容和格式。
然后,我們需要遍歷每一個(gè)幻燈片中的每一個(gè)形狀,判斷是否是包含文本的形狀,如果是,就獲取其內(nèi)部的文本框?qū)ο?,如下?/p>
# 遍歷每一個(gè)幻燈片中的每一個(gè)形狀 for shape in slide.shapes: # 判斷是否是包含文本的形狀 if shape.has_text_frame: # 獲取其內(nèi)部的文本框?qū)ο? text_frame = shape.text_frame # 在此處添加代碼
最后,我們需要遍歷每一個(gè)文本框中的每一個(gè)段落,獲取其文本內(nèi)容和格式,然后將其寫入到Word文檔中,如下:
# 遍歷每一個(gè)文本框中的每一個(gè)段落 for paragraph in text_frame.paragraphs: # 獲取其文本內(nèi)容和格式 text = paragraph.text font = paragraph.font # 將其寫入到Word文檔中 doc.add_paragraph(text, style=font)
保存Word文檔
最后,我們需要保存生成的Word文檔,如下:
# 保存生成的Word文檔 doc.save(WORD_FILE)
這段代碼的作用是:
doc.save(WORD_FILE)
是用Word文檔對(duì)象doc
的save
方法來保存生成的Word文檔,參數(shù)WORD_FILE
是我們定義的Word文檔的名稱,你可以在你的電腦上找到這個(gè)文件。
總結(jié)
本文介紹了如何使用python-pptx
和python-docx
庫來將PPT中的文字提取到Word中。
本文通過一個(gè)實(shí)際的場景,演示了如何遍歷PPT文件中的每一個(gè)幻燈片,每一個(gè)形狀,每一個(gè)文本框,每一個(gè)段落,獲取其文本內(nèi)容和格式,然后將其寫入到Word文檔中。
到此這篇關(guān)于Python實(shí)現(xiàn)批量提取PPT中的文字的文章就介紹到這了,更多相關(guān)Python提取PPT文字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中import的用法陷阱解決盤點(diǎn)小結(jié)
這篇文章主要為大家介紹了Python中import的用法陷阱解決盤點(diǎn)小結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10Python如何實(shí)現(xiàn)PDF隱私信息檢測
隨著越來越多的個(gè)人信息以電子形式存儲(chǔ)和傳輸,確保這些信息的安全至關(guān)重要,本文將介紹如何使用Python檢測PDF文件中的隱私信息,需要的可以參考下2025-02-02Python 實(shí)現(xiàn)LeNet網(wǎng)絡(luò)模型的訓(xùn)練及預(yù)測
本文將為大家詳細(xì)講解如何使用CIFR10數(shù)據(jù)集訓(xùn)練模型以及用訓(xùn)練好的模型做預(yù)測。代碼具有一定價(jià)值,感興趣的小伙伴可以學(xué)習(xí)一下2021-11-11python 列表輸出重復(fù)值以及對(duì)應(yīng)的角標(biāo)方法
今天小編就為大家分享一篇python 列表輸出重復(fù)值以及對(duì)應(yīng)的角標(biāo)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06Python利用SSH隧道實(shí)現(xiàn)數(shù)據(jù)庫訪問
這篇文章主要為大家詳細(xì)介紹了如何通過sshtunnel類庫建立SSH隧道,再使用paramiko通過SSH來訪問數(shù)據(jù)庫,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-03-03解決python 3 urllib 沒有 urlencode 屬性的問題
今天小編就為大家分享一篇解決python 3 urllib 沒有 urlencode 屬性的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08