python docx删除word段落

使用python-docx编辑一个docx文档时, 对添加的方法使用很多, 但有时候也会用到删除和修改

python-docx中并没有提供delete()方法, github上给出了解决方法:

https://github.com/python-openxml/python-docx/issues/33

def delete_paragraph(paragraph):
    p = paragraph._element
    p.getparent().remove(p)
    # p._p = p._element = None
    paragraph._p = paragraph._element = None

经试验, 此方法对删除段落,表格,标题, 图片都是管用的: 

from docx import Document
docx = Document('word_file.docx')
def delete_docx_prefix_description(docx):
    delete_paragraph(docx.tables[0]) # 删除word中第一个table
    for p in docx.paragraphs:
        delete_paragraph(p)
        if ''.join(p.text.split(' ')).lower()=='header_keyword':
            break
    for p in docx.paragraphs:  
        if p.text.lower()=='': # 删除word中在开始部分的空白段落
            delete_paragraph(p)
        else:
            break

 

你可能感兴趣的:(Mac,OS,python)