当前位置: 首页 > 知识库问答 >
问题:

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

竺鸿骞
2023-03-14

我有一个很大的。docx文档。它有100多个段落。然而,有一些垃圾段落,我需要删除。例如,那些需要删除的段落有一个关键字“无”。我如何使用python删除那些有关键字“none”的段落。这是我目前所拥有的,但它只能删除空白段落。我如何修改它以达到我的目的?

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") 

共有1个答案

羊舌琛
2023-03-14

对于下面的代码,您应该能够在简单的情况下做到这一点:

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

随后对“Deleted”段落对象的任何访问都将引发AttributeError,因此您应该注意不要将引用挂起,包括作为document.parages的存储值的成员。

它还不在库中的原因是因为一般情况要复杂得多,特别是需要检测和处理段落中可能存在的各种链接项;像图片、超链接或图表之类的东西。

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

 类似资料:
  • 问题 我正在尝试从BeautifulSoup下载的html文件中删除诸如 和之类的样式标记。我确实想保留标签包含的内容(比如文本),但这似乎不起作用。 我所尝试的 我尝试使用的URL Python HTML解析和过滤停止词 使用Python和lxml从HTML中删除class属性 BeautifulSoup标签去除

  • 我有一个表格,上面有多个大陆的数据。现在我想删除每一行不是欧洲或非洲的大陆。与: 我每一排都是“欧洲”,但我想念“非洲”。有没有办法包含“或”-运算符?这对我不起作用。

  • 我正在经历一个练习,需要在从文件中删除所有元音后从文件中输出文本。例如,包含文本“计算理论”的文件应输出“Thry f Cmpttn”。 我尝试构建一个函数“removeVowel元音(ifsream 我希望在控制台中输出不带元音的字符串,但程序在不输出字符串的情况下终止。

  • 我正在阅读一个word文件,使用Python在文档中有许多表。我只需要从某些表中提取数据,这取决于它们出现的部分。有没有办法通过文件搜索,到达某一行,读取该行后面出现的表格? 例如,如果文档这个词类似于: 1 2 3 [表格] 4 5 6 [表格] 我能在“6”之后阅读表格吗? 读取“第二个表”不起作用,因为出现在该表之前的表的数量是任意的;我需要读它,因为它出现在“6”之后。

  • 问题内容: 以上似乎不起作用。记录仍然存在。 有人可以修复吗? 问题答案: 是一系列文档。所以它没有方法 您可以分别迭代和删除数组中的每个文档。 或-由于看起来您是通过(可能是)唯一的ID查找而不是来查找文档的。

  • 目前,我正在使用以下方法替换docx文件中的邮件合并字段。这将用数据库中的一个值替换邮件合并字段、等,并向其输出一个新的文档文件。 当数据库中的值为空时,可以做什么,还有更好的方法可以删除合并字段,以消除输出文档文件中的空白行/段落。