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

python-docx如何刪除所有bookmarks

 更新時(shí)間:2024年09月13日 15:32:59   作者:skyrim_H  
在Python-docx庫(kù)中,雖然沒(méi)有直接刪除書簽的功能,但可以通過(guò)操作XML元素,遍歷文檔結(jié)構(gòu)并刪除指定元素來(lái)實(shí)現(xiàn)刪除所有書簽的目的,首先要明白書簽在XML文件中的位置,然后利用Python-docx提供的element元素遍歷并刪除特定的書簽元素

python-docx刪除所有bookmarks

由于當(dāng)時(shí)生成文檔過(guò)于潦草,我想把當(dāng)時(shí)的docx文檔中的所有bookmark全部刪除,然后重新生成。

原理

在這里依然使用branch為bookmark的python-docx作為基礎(chǔ)庫(kù),找遍整個(gè)庫(kù),發(fā)現(xiàn)并沒(méi)有刪除指定元素的功能,只有清空所有內(nèi)容的clear_content的函數(shù)。

但是這個(gè)函數(shù)太過(guò)粗暴,不符合我們的要求。于是我自己想了一個(gè)刪除bookmark的方法。

在python-docx中提供了許多功能,類似于clear_content函數(shù)的實(shí)現(xiàn)原理。

我的思路

  • 我們首先要知道bookmark位于哪些標(biāo)簽下面,(docx文檔的主要成分是一個(gè)xml文件,可以用.zip打開查看),此時(shí),我們發(fā)現(xiàn)部分bookmark被掛在了body下面,部分bookmark被掛在了paragraph下面。
  • 經(jīng)過(guò)搜索,我們docx類中有一個(gè)element元素,該元素可以表示整個(gè)用于構(gòu)造xml的docx類,docx.element包含body元素,body包含paragraph、bookmark等等元素
  • 于是,我們可以參照clear_content,使用for ... in ...的方法遍歷元素,再通過(guò)if判斷element類型,刪除指定element

代碼

def DeleteAllBookmark(d):
    for element in d.element.body:
        if (element.__class__.__name__ == 'CT_Bookmark') or (element.__class__.__name__ == 'CT_MarkupRange'):
            d.element.body.remove(element)
            print(element.id)
        else:
            for ele in element:
                if (ele.__class__.__name__ == 'CT_Bookmark') or (ele.__class__.__name__ == 'CT_MarkupRange'):
                    element.remove(ele)

該函數(shù)能夠直接使用

總結(jié)

其實(shí)python-docx這個(gè)庫(kù)本身功能不太完善,但是,其實(shí)它提供了很多對(duì)xml的操作模板,可供各位二次開發(fā),只是目前我對(duì)于這個(gè)庫(kù)還是不太熟悉,想實(shí)現(xiàn)自己的一些想法還是有點(diǎn)困難。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python數(shù)據(jù)解析bs4庫(kù)使用BeautifulSoup方法示例

    Python數(shù)據(jù)解析bs4庫(kù)使用BeautifulSoup方法示例

    這篇文章主要為大家介紹了Python數(shù)據(jù)解析bs4庫(kù)使用BeautifulSoup方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Python驗(yàn)證用戶密碼是否規(guī)范腳本示例

    Python驗(yàn)證用戶密碼是否規(guī)范腳本示例

    對(duì)用戶密碼的強(qiáng)度進(jìn)行校驗(yàn),要求用戶密碼達(dá)到一定的強(qiáng)度,符合安全性要求,這篇文章主要給大家介紹了關(guān)于Python驗(yàn)證用戶密碼是否規(guī)范的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • 簡(jiǎn)單了解python高階函數(shù)map/reduce

    簡(jiǎn)單了解python高階函數(shù)map/reduce

    這篇文章主要介紹了簡(jiǎn)單了解python高階函數(shù)map/reduce,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-06-06
  • Python爬蟲之爬取嗶哩嗶哩熱門視頻排行榜

    Python爬蟲之爬取嗶哩嗶哩熱門視頻排行榜

    這篇文章主要介紹了Python爬蟲之爬取嗶哩嗶哩熱門視頻排行榜,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • 人工智能學(xué)習(xí)Pytorch張量數(shù)據(jù)類型示例詳解

    人工智能學(xué)習(xí)Pytorch張量數(shù)據(jù)類型示例詳解

    這篇文章主要為大家介紹了人工智能學(xué)習(xí)Pytorch張量數(shù)據(jù)類型的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • python3之微信文章爬蟲實(shí)例講解

    python3之微信文章爬蟲實(shí)例講解

    下面小編就為大家?guī)?lái)一篇python3之微信文章爬蟲實(shí)例講解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • Django models filter篩選條件詳解

    Django models filter篩選條件詳解

    這篇文章主要介紹了Django models filter篩選條件詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • Python實(shí)現(xiàn)數(shù)字的格式化輸出

    Python實(shí)現(xiàn)數(shù)字的格式化輸出

    這篇文章主要介紹了Python如何實(shí)現(xiàn)數(shù)字的格式化輸出,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • Python代碼縮進(jìn)和測(cè)試模塊示例詳解

    Python代碼縮進(jìn)和測(cè)試模塊示例詳解

    這篇文章主要給大家介紹了關(guān)于Python代碼縮進(jìn)和測(cè)試模塊的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • python 中的paramiko模塊簡(jiǎn)介及安裝過(guò)程

    python 中的paramiko模塊簡(jiǎn)介及安裝過(guò)程

    這篇文章主要介紹了python 中的paramiko模塊簡(jiǎn)介及安裝過(guò)程,通過(guò)實(shí)例詳解給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-02-02

最新評(píng)論