欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)提取Word文檔中的文本和圖片

 更新時(shí)間:2023年12月19日 08:14:44   作者:E-iceblue  
將內(nèi)容從?Word?文檔中提取出來可以方便我們對其進(jìn)行其他操作,如將內(nèi)容儲(chǔ)存在數(shù)據(jù)庫中,本文將介紹如何使用簡單的代碼實(shí)現(xiàn)從?Word?文檔中提取文本和圖片內(nèi)容并保存,需要的可以參考下

將內(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)文章

  • Ubuntu下安裝卸載python3.8的過程

    Ubuntu下安裝卸載python3.8的過程

    這篇文章主要介紹了Ubuntu下python3.8的安裝與卸載,本文以在 Ubuntu 16.04 中安裝為例,方法同樣適用于 Ubuntu 18.04,需要的朋友可以參考下
    2021-09-09
  • 解決Python保存文件名太長OSError: [Errno 36] File name too lon

    解決Python保存文件名太長OSError: [Errno 36] File 

    這篇文章主要介紹了解決Python保存文件名太長OSError: [Errno 36] File name too lon問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • selenium學(xué)習(xí)教程之定位以及切換frame(iframe)

    selenium學(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-01
  • Python爬蟲爬取全球疫情數(shù)據(jù)并存儲(chǔ)到mysql數(shù)據(jù)庫的步驟

    Python爬蟲爬取全球疫情數(shù)據(jù)并存儲(chǔ)到mysql數(shù)據(jù)庫的步驟

    這篇文章主要介紹了Python爬蟲爬取全球疫情數(shù)據(jù)并存儲(chǔ)到mysql數(shù)據(jù)庫的步驟,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • python實(shí)現(xiàn)pptx批量向PPT中插入圖片

    python實(shí)現(xiàn)pptx批量向PPT中插入圖片

    大家好,本篇文章主要講的是python實(shí)現(xiàn)pptx批量向PPT中插入圖片,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • Python 中如何寫注釋

    Python 中如何寫注釋

    這篇文章主要介紹了如何在 Python 中注釋,幫助其他開發(fā)者理解你的代碼,以及代碼的目的。感興趣的朋友可以了解下
    2020-08-08
  • 關(guān)于dataframe.query()篩選tips

    關(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-09
  • python通過安裝itchat包實(shí)現(xiàn)微信自動(dòng)回復(fù)收到的春節(jié)祝福

    python通過安裝itchat包實(shí)現(xiàn)微信自動(dòng)回復(fù)收到的春節(jié)祝福

    這篇文章主要介紹了python通過安裝itchat包實(shí)現(xiàn)微信自動(dòng)回復(fù)收到的春節(jié)祝福,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-01-01
  • django admin后管定制-顯示字段的實(shí)例

    django admin后管定制-顯示字段的實(shí)例

    這篇文章主要介紹了django admin后管定制-顯示字段的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python自動(dòng)裁剪圖像代碼分享

    python自動(dòng)裁剪圖像代碼分享

    這篇文章主要介紹了python自動(dòng)裁剪圖像代碼分享,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11

最新評論