我如何使用Python删除docx文档中的某些段落?

问题描述 投票:0回答:1

我有一个很大的.docx文档。它有100多个段落。但是,有一些垃圾段落需要删除。例如,那些需要删除的段落的关键字为“无”。如何使用python删除关键字为“无”的那些段落。这是我到目前为止的内容,但是只能删除空白段落。如何修改它以实现我的目标?

import docx

f = docx.Document(r"test.docx")  
doc = docx.Document() 

for para in f.paragraphs:
    if para.text.count("\n") == len(para.text):  
        continue
    else:
        if not para.text[0].isalpha(): 
            continue

    doc.add_paragraph(para.text) 

doc.save(r"test2.docx") 
python docx python-docx
1个回答
0
投票

对于使用此代码的简单情况,您应该能够做到这一点:

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

任何对“已删除”段落对象的后续访问都将引发AttributeError,因此应注意不要使引用保持混乱,包括作为Document.paragraphs存储值的成员。

之所以不在库中,是因为一般情况都比较棘手,特别是需要检测和处理段落中可能存在的各种链接项;图片,超链接或图表等内容。

但是如果您确定所有这些都不存在,那么这几行应该可以完成工作。

© www.soinside.com 2019 - 2024. All rights reserved.