[英]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.