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()方法加載需要?jiǎng)h除屬性的Word文檔。
- 對于內(nèi)置屬性,通過Document.BuiltinDocumentProperties屬性獲取并將需要?jiǎng)h除的屬性值設(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)文章
python爬蟲selenium和phantomJs使用方法解析
這篇文章主要介紹了python爬蟲selenium和phantomJs使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Python 3.6 中使用pdfminer解析pdf文件的實(shí)現(xiàn)
這篇文章主要介紹了Python 3.6 中使用pdfminer解析pdf文件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09django實(shí)現(xiàn)將修改好的新模型寫入數(shù)據(jù)庫
這篇文章主要介紹了django實(shí)現(xiàn)將修改好的新模型寫入數(shù)據(jù)庫,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03Python操作excel的方法總結(jié)(xlrd、xlwt、openpyxl)
這篇文章主要給大家介紹了關(guān)于Python操作excel的一些方法,其中包括xlrd、xlwt、openpyxl的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Python利用matplotlib實(shí)現(xiàn)繪制密度散點(diǎn)圖
這篇文章主要介紹了如何基于Python語言的matplotlib模塊,對Excel表格文件中的指定數(shù)據(jù)加以密度散點(diǎn)圖繪制的方法,有需要的小伙伴可以參考下2024-04-04python實(shí)現(xiàn)代碼行數(shù)統(tǒng)計(jì)示例分享
這篇文章主要介紹了python實(shí)現(xiàn)代碼行數(shù)統(tǒng)計(jì)的示例,需要的朋友可以參考下2014-02-02如何將你的應(yīng)用遷移到Python3的三個(gè)步驟
這篇文章主要介紹了如何將你的應(yīng)用遷移到Python3的三個(gè)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12