办公自动化,想对一个docx文件部分段落进行删除,并进行保存。得出结果是另存的文件还是删除前的内容,代码如下。

Jason990420
最佳答案

You cannot delete a paragraph by following statement because paragraph is a new list created by docx, not the paragraph in the document.

del paragraph[10]

Do it by

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

if len(paragraph) > 10:
    try:
        delete_paragraph(paragraph[10])
        paragraph = doc.paragraphs
        print(f"Length after deleted:{len(paragraph)}")
    except ValueError as e:
        print("Error:{e}")
else:
    print("The length of paragraph is less than 11 !")
7个月前 评论
讨论数量: 2
Jason990420

You cannot delete a paragraph by following statement because paragraph is a new list created by docx, not the paragraph in the document.

del paragraph[10]

Do it by

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

if len(paragraph) > 10:
    try:
        delete_paragraph(paragraph[10])
        paragraph = doc.paragraphs
        print(f"Length after deleted:{len(paragraph)}")
    except ValueError as e:
        print("Error:{e}")
else:
    print("The length of paragraph is less than 11 !")
7个月前 评论

感谢大神给予的帮助!!

7个月前 评论