繁体   English   中英

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

[英]How can I use Python to delete certain paragraphs in docx document?

我有一个 large.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") 

您应该可以使用以下代码为简单的情况执行此操作:

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

对“已删除”段落 object 的任何后续访问都将引发 AttributeError,因此您应注意不要让引用悬空,包括作为 Document.paragraphs 存储值的成员。

它还没有在库中的原因是因为一般情况要复杂得多,特别是需要检测和处理段落中可能出现的各种链接项目; 图片、超链接或图表等。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM