Python實(shí)現(xiàn)提取Word文檔中的文本和圖片
將內(nèi)容從 Word 文檔中提取出來可以方便我們對其進(jìn)行其他操作,如將內(nèi)容儲(chǔ)存在數(shù)據(jù)庫中、將內(nèi)容導(dǎo)入到其他程序中、用于 AI 訓(xùn)練以及制作其他文檔等。第三方庫 Spire.Doc for Python 提供了一個(gè)簡單的方法直接提取 Word 文檔中的內(nèi)容,包括文本和圖片,而不需要大量的復(fù)制粘貼操作,也不需要復(fù)雜的代碼。本文將介紹如何使用簡單的代碼實(shí)現(xiàn)從 Word 文檔中提取文本和圖片內(nèi)容并保存。
- 從 Word 文檔中提取文本內(nèi)容并寫入 TXT 文件
- 從 Word 文檔中提取圖片并保存
Python庫安裝: 在操作之前,需要先將Spire.Doc for Python 引入到項(xiàng)目中??梢韵螺d后安裝,或直接通過 pip 安裝。
pip install Spire.Doc
Python 提取Word文檔中的文本內(nèi)容
Spire.Doc for Python中的 Document.GetText() 方法可以獲取Word文檔中的所有文本并返回字符串,我們可以將返回的字符串寫入到文本文件中進(jìn)行保存。
代碼示例:
from turtle import st from spire.doc import * from spire.doc.common import * def WriteAllText(fname:str,text:List[str]): fp = open(fname,"w") for s in text: fp.write(s) fp.close() inputFile = "示例.docx" outputFile = "獲取的文本.txt" #創(chuàng)建Document的對象 document = Document() #載入Word文檔 document.LoadFromFile(inputFile) #獲取文檔中的文本 text = document.GetText() #將文本寫入文本文件 WriteAllText(outputFile, text) document.Close()
提取結(jié)果
Python 提取Word文檔中的圖片
提取圖片的操作相對復(fù)雜一些,需要判斷文檔元素子對象是否為圖片或復(fù)合對象,如果是圖片則保存,如果是復(fù)合對象則繼續(xù)判斷其中的子對象是否為圖片。
代碼示例:
import queue from spire.doc import * from spire.doc.common import * import os outputPath = "Images/" inputFile = "示例.docx" if not os.path.exists(outputPath): os.makedirs(outputPath) #創(chuàng)建Document的對象 document = Document() #載入Word文檔 document.LoadFromFile(inputFile) #創(chuàng)建一個(gè)隊(duì)列并將文檔元素放入其中 nodes = queue.Queue() nodes.put(document) #創(chuàng)建一個(gè)列表 images = [] #循環(huán)遍歷文檔元素 while nodes.qsize() > 0: node = nodes.get() for i in range(node.ChildObjects.Count): #獲取文檔元素的子對象 child = node.ChildObjects.get_Item(i) #判斷子對象是否為圖片 if child.DocumentObjectType == DocumentObjectType.Picture: picture = child if isinstance(child, DocPicture) else None dataBytes = picture.ImageBytes #添加到列表中 images.append(dataBytes) #判斷子對象是否為復(fù)合對象 elif isinstance(child, ICompositeObject): #添加到隊(duì)列中 nodes.put(child if isinstance(child, ICompositeObject) else None) #保存圖片 for i, item in enumerate(images): fileName = "Image-{}.png".format(i) with open(outputPath+fileName,'wb') as imageFile: imageFile.write(item) document.Close()
提取結(jié)果:
到此這篇關(guān)于Python實(shí)現(xiàn)提取Word文檔中的文本和圖片的文章就介紹到這了,更多相關(guān)Python提取Word文本圖片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Python保存文件名太長OSError: [Errno 36] File
這篇文章主要介紹了解決Python保存文件名太長OSError: [Errno 36] File name too lon問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05selenium學(xué)習(xí)教程之定位以及切換frame(iframe)
這篇文章主要給大家介紹了關(guān)于selenium學(xué)習(xí)教程之定位以及切換frame(iframe)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Python爬蟲爬取全球疫情數(shù)據(jù)并存儲(chǔ)到mysql數(shù)據(jù)庫的步驟
這篇文章主要介紹了Python爬蟲爬取全球疫情數(shù)據(jù)并存儲(chǔ)到mysql數(shù)據(jù)庫的步驟,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-03-03python實(shí)現(xiàn)pptx批量向PPT中插入圖片
大家好,本篇文章主要講的是python實(shí)現(xiàn)pptx批量向PPT中插入圖片,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-02-02關(guān)于dataframe.query()篩選tips
在Pandas中,通過布爾索引或.query()方法可以實(shí)現(xiàn)對DataFrame中數(shù)據(jù)的篩選。例如,篩選特定列符合條件的行數(shù)據(jù)或排除某些類型值。此外,.query()方法還支持使用外部變量進(jìn)行篩選。這些操作對數(shù)據(jù)處理非常有用,可以高效地進(jìn)行數(shù)據(jù)清洗和預(yù)處理2024-09-09python通過安裝itchat包實(shí)現(xiàn)微信自動(dòng)回復(fù)收到的春節(jié)祝福
這篇文章主要介紹了python通過安裝itchat包實(shí)現(xiàn)微信自動(dòng)回復(fù)收到的春節(jié)祝福,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-01-01