使用Python獲取Word文檔關(guān)鍵信息
計(jì)算 Word 文檔的頁(yè)數(shù)、字?jǐn)?shù)等信息是出版、學(xué)術(shù)和內(nèi)容管理等領(lǐng)域的一項(xiàng)基本任務(wù)。準(zhǔn)確的頁(yè)數(shù)和字?jǐn)?shù)對(duì)于評(píng)估文檔長(zhǎng)度、估算印刷成本、分析文本復(fù)雜性以及確保符合格式化指南至關(guān)重要。逐個(gè)預(yù)覽文檔查看相關(guān)信息是非常麻煩的事情,我們可以在不預(yù)覽文檔的情況下,用Python實(shí)現(xiàn)快速批量地獲取文檔中的頁(yè)數(shù)、字?jǐn)?shù)、段落數(shù)、節(jié)數(shù)、詞數(shù)等關(guān)鍵信息,實(shí)現(xiàn)文檔的高效管理,簡(jiǎn)化相關(guān)任務(wù)流程。
本文所使用的方法需要用到Spire.Doc for Python,可從官網(wǎng)獲取通過(guò)PyPI:pip install Spire.Doc
。
獲取Word文檔頁(yè)數(shù)、字?jǐn)?shù)、字符數(shù)、段落數(shù)以及帶空格的字符數(shù)
API中提供的 Document.BuiltinDocumentProperties 屬性可以獲取文檔中的一些內(nèi)置屬性,如頁(yè)數(shù)、詞數(shù)、字符數(shù)等信息。以下是操作步驟:
1.導(dǎo)入所需庫(kù):spire.doc 和 spire.doc.common 用于處理 Word 文檔,os 用于操作系統(tǒng)文件及目錄操作。
2.定義待遍歷的文件夾路徑。
3.創(chuàng)建 Document 類的一個(gè)實(shí)例 doc,用于加載和操作 Word 文檔。
4.使用 os.walk() 遍歷指定文件夾及其子文件夾中的所有文件。
5.對(duì)于遍歷到的每個(gè)文件:
- 檢查文件擴(kuò)展名是否為 .doc 或 .docx,若是則表示為 Word 文檔。
- 使用 os.path.join() 組合完整文件路徑,并使用 doc.LoadFromFile() 方法加載該 Word 文檔。
- 調(diào)用 doc.UpdateWordCount() 更新文檔的字?jǐn)?shù)統(tǒng)計(jì)信息,確保統(tǒng)計(jì)數(shù)據(jù)準(zhǔn)確。
- 獲取文檔的內(nèi)置屬性,存儲(chǔ)在 builtinProperties 變量中。
- 從內(nèi)置屬性中分別提取文檔的頁(yè)數(shù)(PageCount)、段落數(shù)(ParagraphCount)、字符數(shù)(CharCount)、包含空格的字符數(shù)(CharCountWithSpace)和字?jǐn)?shù)(WordCount)。
- 將這些統(tǒng)計(jì)信息與對(duì)應(yīng)的文件名一起打印出來(lái)。
6.在遍歷并處理完所有 Word 文檔后,調(diào)用 doc.Close() 關(guān)閉文檔,釋放資源。
代碼示例
from spire.doc import * from spire.doc.common import * import os # 定義文件夾路徑 folderPath = "Documents" # 創(chuàng)建Document實(shí)例 doc = Document() # 遍歷文件夾中的文檔 for root, dirs, files in os.walk(folderPath): for file in files: # 判斷文件是否為Word文檔 if file.endswith(('.doc', '.docx')): # 載入Word文檔 doc.LoadFromFile(os.path.join(root, file)) # 更新字?jǐn)?shù)統(tǒng)計(jì)(確保字?jǐn)?shù)統(tǒng)計(jì)是最新的) doc.UpdateWordCount() # 獲取文檔內(nèi)置屬性 builtinProperties = doc.BuiltinDocumentProperties # 獲取頁(yè)數(shù) pageCount = builtinProperties.PageCount # 獲取段落數(shù) paragraphCount = builtinProperties.ParagraphCount # 獲取字符數(shù) charCount = builtinProperties.CharCount # 獲取包含空格的字符數(shù) charCountWithSpaces = builtinProperties.CharCountWithSpace # 獲取字?jǐn)?shù) wordCount = builtinProperties.WordCount # 輸出結(jié)果 print(f"文檔——{file} 頁(yè)數(shù)為:", pageCount) print(f"文檔——{file} 段落數(shù)為:", paragraphCount) print(f"文檔——{file} 字符數(shù)為:", charCount) print(f"文檔——{file} 包含空格的字符數(shù)為:", charCountWithSpaces) print(f"文檔——{file} 字?jǐn)?shù)為:", wordCount) doc.Close()
輸出結(jié)果
用Python計(jì)算Word文檔節(jié)的數(shù)量
節(jié)的計(jì)數(shù)不被統(tǒng)計(jì)在內(nèi)置屬性中,但我們可以直接使用 Document.Sections.Count 屬性計(jì)算節(jié)的數(shù)量。以下是操作步驟:
1.導(dǎo)入所需模塊:spire.doc 和 spire.doc.common 用于處理 Word 文檔,os 用于操作系統(tǒng)文件及目錄操作。
2.定義待遍歷的文件夾路徑。
3.創(chuàng)建 Document 類的實(shí)例 doc,用于加載和操作 Word 文檔。
4.使用 os.walk() 遍歷指定文件夾及其子文件夾中的所有文件。
5.對(duì)于遍歷到的每個(gè)文件:
- 檢查文件擴(kuò)展名是否為 .doc 或 .docx,如果是,則表示為 Word 文檔。
- 使用 os.path.join() 組合得到文件的完整路徑,并使用 doc.LoadFromFile() 方法加載該 Word 文檔。
- 從文檔對(duì)象 doc 中獲取文檔中節(jié)(section)的數(shù)量,存儲(chǔ)在變量 sectionCount 中。
- 將文檔名和節(jié)的數(shù)量一同打印出來(lái),展示文檔內(nèi)部的結(jié)構(gòu)信息。
6.在遍歷并處理完所有匹配的 Word 文檔后,調(diào)用 doc.Close() 方法關(guān)閉文檔,釋放資源。
代碼示例
from spire.doc import * from spire.doc.common import * import os # 定義文件夾路徑 folderPath = "Documents" # 創(chuàng)建Document實(shí)例 doc = Document() # 遍歷文件夾中的文件 for root, dirs, files in os.walk(folderPath): for file in files: # 判斷文件是否為Word文檔 if file.endswith(('.doc', '.docx')): # 載入Word文檔 doc.LoadFromFile(os.path.join(root, file)) # 獲取文檔中節(jié)的數(shù)量 sectionCount = doc.Sections.Count # 輸出結(jié)果 print(f"文檔——", file, " 節(jié)數(shù)為:", sectionCount) doc.Close()
輸出結(jié)果
到此這篇關(guān)于使用Python獲取Word文檔關(guān)鍵信息的文章就介紹到這了,更多相關(guān)Python獲取Word信息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python調(diào)用Prometheus監(jiān)控?cái)?shù)據(jù)并計(jì)算
Prometheus是一套開(kāi)源監(jiān)控系統(tǒng)和告警為一體,由go語(yǔ)言(golang)開(kāi)發(fā),是監(jiān)控+報(bào)警+時(shí)間序列數(shù)據(jù)庫(kù)的組合。本文將介紹Python如何調(diào)用Prometheus實(shí)現(xiàn)數(shù)據(jù)的監(jiān)控與計(jì)算,需要的可以參考一下2021-12-12Python爬蟲(chóng)之Selenium實(shí)現(xiàn)鍵盤(pán)事件
這篇文章主要介紹了Python爬蟲(chóng)之Selenium實(shí)現(xiàn)鍵盤(pán)事件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Python利用物理引擎Pymunk編寫(xiě)一個(gè)解壓小游戲
這篇文章主要為大家詳細(xì)介紹了Python如何利用物理引擎Pymunk編寫(xiě)一個(gè)解壓小游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下2023-01-01實(shí)例講解python中的序列化知識(shí)點(diǎn)
本篇文章通過(guò)代碼實(shí)例給大家詳細(xì)分享了關(guān)于python中的序列化知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2018-10-10opencv-python圖像配準(zhǔn)(匹配和疊加)的實(shí)現(xiàn)
圖像配準(zhǔn)需是指對(duì)不同條件下得到的兩幅或多幅圖像進(jìn)行匹配、疊加的過(guò)程。本文詳細(xì)的介紹了如何使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06Python?CNN卷積神經(jīng)網(wǎng)絡(luò)實(shí)戰(zhàn)教程深入講解
CNN,即卷積神經(jīng)網(wǎng)絡(luò),主要用于圖像識(shí)別,分類。由輸入層,卷積層,池化層,全連接層(Affline層),Softmax層疊加而成。卷積神經(jīng)網(wǎng)絡(luò)中還有一個(gè)非常重要的結(jié)構(gòu):過(guò)濾器,它作用于層與層之間(卷積層與池化層),決定了怎樣對(duì)數(shù)據(jù)進(jìn)行卷積和池化2022-12-12利用Python腳本實(shí)現(xiàn)ping百度和google的方法
最近在做SEO的時(shí)候,為了讓發(fā)的外鏈能夠快速的收錄,想到了利用ping的功能,google和百度都有相關(guān)的ping介紹,有興趣的朋友可以去看看相關(guān)的知識(shí)。下面這篇文章主要介紹了利用Python腳本實(shí)現(xiàn)ping百度和google的方法,需要的朋友可以參考借鑒,一起來(lái)看看吧。2017-01-01Python實(shí)現(xiàn)識(shí)別手寫(xiě)數(shù)字大綱
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)識(shí)別手寫(xiě)數(shù)字的大綱,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01