Python進(jìn)行添加,讀取和刪除Word文檔屬性
在Python中處理Word文檔時(shí),對文檔屬性進(jìn)行操作是一項(xiàng)重要的任務(wù)。文檔屬性主要分為內(nèi)置屬性(如標(biāo)題、作者等)和自定義屬性(用戶根據(jù)自身需求定義的屬性)。合理地管理這些屬性,能夠提升文檔管理效率、優(yōu)化信息檢索功能,并確保文檔數(shù)據(jù)的準(zhǔn)確性與安全性。本文將介紹如何使用Python實(shí)現(xiàn)對Word文檔屬性的添加、讀取和刪除操作,包括內(nèi)置文檔屬性和自定義文檔屬性。
本文所使用的方法需要用到免費(fèi)的Free Spire.Doc for Python,PyPI:pip install spire.doc.free。
用Python添加文檔屬性到Word文檔
我們可以使用庫中的類和方法直接從文件或流載入Word文檔進(jìn)行處理。添加內(nèi)置屬性時(shí),利用Document.BuiltinDocumentProperties屬性訪問并設(shè)置相應(yīng)值;添加自定義屬性則借助CustomDocumentProperties.Add()方法。具體步驟如下:
- 導(dǎo)入所需模塊:Document,String,Int32,DateTime,Boolean。
- 創(chuàng)建`Document 類的實(shí)例。
- 使用Document.LoadFromFile()方法加載Word文檔。
- 對內(nèi)置屬性,通過Document.BuiltinDocumentProperties屬性獲取并設(shè)置相關(guān)屬性值。
- 對自定義屬性,通過Document.CustomDocumentProperties屬性獲取,再使用Add()方法添加不同類型的自定義屬性。
- 使用Document.SaveToFile()方法保存修改后的文檔。
代碼示例
from spire.doc import Document, String, Int32, DateTime, Boolean
# 創(chuàng)建Document對象
doc = Document()
# 加載Word文檔
doc.LoadFromFile("Sample.docx")
# 添加內(nèi)置屬性
builtin_prop = doc.BuiltinDocumentProperties
builtin_prop.Title = "Python文檔屬性操作"
builtin_prop.Author = "代碼開發(fā)者"
builtin_prop.Category = "技術(shù)教程"
builtin_prop.Keywords = "Python,Word,屬性操作"
# 添加自定義屬性
custom_prop = doc.CustomDocumentProperties
custom_prop.Add("項(xiàng)目ID", String("PRJ001"))
custom_prop.Add("完成進(jìn)度", Int32(80))
custom_prop.Add("截止日期", DateTime(2024, 12, 31, 0, 0, 0, 0))
custom_prop.Add("是否重要", Boolean(True))
# 保存文檔
doc.SaveToFile("output/添加屬性后的文檔.docx")
doc.Close()
結(jié)果

用Python讀取Word文檔的文檔屬性
通過BuiltinDocumentProperties類的屬性,我們也可以實(shí)現(xiàn)讀取內(nèi)置屬性,而讀取自定義屬性則依賴CustomDocumentProperty.Name和CustomDocumentProperty.Value屬性(或CustomDocumentProperty.ToString()方法讀取為字符串)。具體操作步驟如下:
- 導(dǎo)入所需模塊:Document。
- 創(chuàng)建Document類的實(shí)例。
- 使用Document.LoadFromFile()方法加載已添加屬性的Word文檔。
- 對于內(nèi)置屬性,通過Document.BuiltinDocumentProperties屬性獲取并讀取相關(guān)屬性值。
- 對于自定義屬性,通過Document.CustomDocumentProperties屬性獲取,然后遍歷獲取每個(gè)自定義屬性的名稱和值。
- 輸出或進(jìn)一步處理讀取到的屬性值。
代碼示例
from spire.doc import Document
# 創(chuàng)建Document對象
doc = Document()
# 加載Word文檔
doc.LoadFromFile("output/添加屬性后的文檔.docx")
# 讀取內(nèi)置屬性
builtin_prop = doc.BuiltinDocumentProperties
print("內(nèi)置屬性:")
print(f"標(biāo)題: {builtin_prop.Title}")
print(f"作者: {builtin_prop.Author}")
print(f"類別: {builtin_prop.Category}")
print(f"關(guān)鍵詞: {builtin_prop.Keywords}")
# 讀取自定義屬性
custom_prop = doc.CustomDocumentProperties
print("\n自定義屬性:")
for i in range(custom_prop.Count):
prop_name = custom_prop.get_Item(i).Name
prop_value = custom_prop.get_Item(i).ToString()
print(f"{prop_name}: {prop_value}")
doc.Close()
結(jié)果

用Python移除Word文檔的文檔屬性
刪除內(nèi)置屬性時(shí),將其值設(shè)為None即可;刪除自定義屬性則使用DocumentProperties.Remove()方法。具體操作步驟如下:
- 導(dǎo)入所需模塊:Document。
- 創(chuàng)建Document類的實(shí)例。
- 使用Document.LoadFromFile()方法加載需要刪除屬性的Word文檔。
- 對于內(nèi)置屬性,通過Document.BuiltinDocumentProperties屬性獲取并將需要刪除的屬性值設(shè)為None。
- 對于自定義屬性,通過Document.CustomDocumentProperties屬性獲取,然后遍歷并使用Remove()方法刪除每個(gè)自定義屬性。
- 使用Document.SaveToFile()方法保存修改后的文檔。
代碼示例
from spire.doc import Document
# 創(chuàng)建Document對象
doc = Document()
# 加載Word文檔
doc.LoadFromFile("output/添加屬性后的文檔.docx")
# 刪除內(nèi)置屬性
builtin_prop = doc.BuiltinDocumentProperties
builtin_prop.Title = None
builtin_prop.Author = None
builtin_prop.Category = None
builtin_prop.Keywords = None
# 刪除自定義屬性
custom_prop = doc.CustomDocumentProperties
for i in range(custom_prop.Count - 1, -1, -1):
custom_prop.Remove(custom_prop[i].Name)
# 保存文檔
doc.SaveToFile("output/刪除屬性后的文檔.docx")
doc.Close()
以上就是Python進(jìn)行添加,讀取和刪除Word文檔屬性的詳細(xì)內(nèi)容,更多關(guān)于Python Word文檔屬性的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python3+selenium實(shí)現(xiàn)cookie免密登錄的示例代碼
這篇文章主要介紹了Python3+selenium實(shí)現(xiàn)cookie免密登錄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
python錯(cuò)誤提示:Errno?2]?No?such?file?or?directory的解決方法
我相信很多人在學(xué)習(xí)Python的時(shí)候,特別是在open文件的時(shí)候總還碰到,還報(bào)錯(cuò)IOError:[Errno?2]沒有這樣的文件或目錄:'E://aaa.txt',這篇文章主要給大家介紹了關(guān)于python錯(cuò)誤提示:Errno?2]?No?such?file?or?directory的解決方法,需要的朋友可以參考下2022-02-02
使用Python實(shí)現(xiàn)Word文檔的深度克隆的完整代碼
在日常辦公場景中,我們經(jīng)常需要對 Word 文檔進(jìn)行內(nèi)容提取、樣式復(fù)制或格式轉(zhuǎn)換,本文將詳細(xì)介紹如何使用 python-docx 庫實(shí)現(xiàn) Word 文檔的深度克隆功能,包括段落樣式、表格格式、分頁符等元素的完整復(fù)制,需要的朋友可以參考下2025-05-05
獨(dú)立進(jìn)程使用django模型及django.setup()使用
這篇文章主要介紹了獨(dú)立進(jìn)程使用django模型(django.setup()使用),它提供了一種簡單且高效的方式來利用Django強(qiáng)大的功能,并使你的代碼更易于維護(hù)和擴(kuò)展,需要的朋友可以參考下2023-07-07
python 實(shí)現(xiàn)樸素貝葉斯算法的示例
這篇文章主要介紹了python實(shí)現(xiàn)樸素貝葉斯算法的示例,幫助大家更好的理解和學(xué)習(xí)python 機(jī)器學(xué)習(xí)算法,感興趣的朋友可以了解下2020-09-09
利用Python輕松實(shí)現(xiàn)視頻轉(zhuǎn)GIF動圖
在看視頻的時(shí)候覺得某段非常有意思想弄成動圖,但是無從下手!本文就將介紹如何利用Python搞定這一需求,感興趣的小伙伴可以學(xué)習(xí)一下2022-01-01
Python2與Python3的區(qū)別實(shí)例總結(jié)
這篇文章主要介紹了Python2與Python3的區(qū)別,結(jié)合實(shí)例形式總結(jié)分析了Python2與Python3打印輸出、編碼、數(shù)值運(yùn)算、異常處理等使用區(qū)別,需要的朋友可以參考下2019-04-04
cookies應(yīng)對python反爬蟲知識點(diǎn)詳解
在本篇文章里小編給大家整理關(guān)于cookies應(yīng)對python反爬蟲知識點(diǎn)詳解,有興趣的朋友們可以學(xué)習(xí)下。2020-11-11

