Ms word 如何避免PythonDocx中的重复?

Ms word 如何避免PythonDocx中的重复?,ms-word,duplicates,python-3.6,python-docx,Ms Word,Duplicates,Python 3.6,Python Docx,程序会在文档中创建一个标题(当前日期),如果该标题已经存在于文档中,我希望避免重复标题。我的代码创建了一个标题,但也创建了重复的标题。我应该如何更改代码以避免重复 date = datetime.today().strftime('%A, %d. %B %Y') document = Document('example.docx') def duplicate(document): for paragraph in document.paragraphs: if date

程序会在文档中创建一个标题(当前日期),如果该标题已经存在于文档中,我希望避免重复标题。我的代码创建了一个标题,但也创建了重复的标题。我应该如何更改代码以避免重复

date = datetime.today().strftime('%A, %d. %B %Y')
document = Document('example.docx')
def duplicate(document):
    for paragraph in document.paragraphs:
        if date not in paragraph.text:
           document.add_heading(date)
           document.save('example.docx')
duplicate(document)

这个问题有很多问题:

  • 应该是:
    datetime.date.today().strftime(“%A,%d.%B%Y”)
  • 您的代码在每个段落中查找日期,如果该段落中没有日期,则会添加一个带有该日期的标题。这意味着,即使您有一个包含日期的段落,您仍然要为不包含日期的段落创建标题,因为
    如果段落中没有日期。text:
    仍将运行,并且将添加标题
  • document.save('example.docx')
    只需在完成更改后运行。你不需要每次都保存它。文档中段落的
    。段落:
    无明显原因地保存最终结果
  • 如果您只想在整个文档中不存在该日期的标题时添加该标题,您可以这样做(有许多其他方法,但对我来说似乎更简洁):


    添加
    副本(文档)
    作为代码的最后一行。您已经定义了一个函数,但从未调用itThanks以获得答案。现在它创建了一个标题,但也复制了一个标题。
    if document.element.xml.find(date) == -1:
        document.add_heading(date)
    document.save('example.docx')