將內容從 Word 文檔中提取出來可以方便我們對其進行其他操作,如將內容儲存在資料庫中、將內容導入到其他程式中、用於 AI 訓練以及製作其他文檔等。第三方庫 Spire.Doc for Python 提供了一個簡單的方法直接提取 Word 文檔中的內容,包括文本和圖片,而不需要大量的複製粘貼操作,也 ...
將內容從 Word 文檔中提取出來可以方便我們對其進行其他操作,如將內容儲存在資料庫中、將內容導入到其他程式中、用於 AI 訓練以及製作其他文檔等。第三方庫 Spire.Doc for Python 提供了一個簡單的方法直接提取 Word 文檔中的內容,包括文本和圖片,而不需要大量的複製粘貼操作,也不需要複雜的代碼。本文將介紹如何使用簡單的代碼實現從 Word 文檔中提取文本和圖片內容並保存。
- 從 Word 文檔中提取文本內容並寫入 TXT 文件
- 從 Word 文檔中提取圖片並保存
Python庫安裝: 在操作之前,需要先將Spire.Doc for Python 引入到項目中。可以下載後安裝,或直接通過 pip 安裝。
pip install Spire.Doc
Python 提取Word文檔中的文本內容
Spire.Doc for Python中的 Document.GetText() 方法可以獲取Word文檔中的所有文本並返回字元串,我們可以將返回的字元串寫入到文本文件中進行保存。
代碼示例:
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" #創建Document的對象 document = Document() #載入Word文檔 document.LoadFromFile(inputFile) #獲取文檔中的文本 text = document.GetText() #將文本寫入文本文件 WriteAllText(outputFile, text) document.Close()
提取結果
Python 提取Word文檔中的圖片
提取圖片的操作相對複雜一些,需要判斷文檔元素子對象是否為圖片或複合對象,如果是圖片則保存,如果是複合對象則繼續判斷其中的子對象是否為圖片。
代碼示例:
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) #創建Document的對象 document = Document() #載入Word文檔 document.LoadFromFile(inputFile) #創建一個隊列並將文檔元素放入其中 nodes = queue.Queue() nodes.put(document) #創建一個列表 images = [] #迴圈遍歷文檔元素 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) #判斷子對象是否為複合對象 elif isinstance(child, ICompositeObject): #添加到隊列中 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()
提取結果:
以上是關於如何使用Python 從Word文檔中提取文本和圖片的介紹。該Python Word庫還支持非常多的文檔操作,具體可以查看 Spire.Doc for Python中文教程。