如何避免 python-docx 中出现重复?
How to avoid duplicates in python-docx?
该程序在文档中创建一个标题(当前日期),如果该标题已经在文档中,我想避免可能的标题重复。我的代码创建了一个标题,但也有重复。我应该在我的代码中更改哪些程序可以避免重复?
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')
- 您的代码在每个段落中查找日期,如果该段落中没有日期,它会添加一个带有该日期的标题。这意味着即使你有一个有日期的段落,你仍然要为没有日期的段落创建标题,因为
if date not in paragraph.text:
仍然 运行 并且将添加一个标题
document.save('example.docx')
完成更改后只需要 运行。你不需要每次都保存它。 for paragraph in document.paragraphs:
无缘无故地保存最终结果。
如果您只想在整个文档中不存在该日期的情况下添加带有该日期的标题,您可以这样做(还有许多其他方法可以做到这一点,但这对我来说似乎更清晰):
if document.element.xml.find(date) == -1:
document.add_heading(date)
document.save('example.docx')
该程序在文档中创建一个标题(当前日期),如果该标题已经在文档中,我想避免可能的标题重复。我的代码创建了一个标题,但也有重复。我应该在我的代码中更改哪些程序可以避免重复?
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')
- 您的代码在每个段落中查找日期,如果该段落中没有日期,它会添加一个带有该日期的标题。这意味着即使你有一个有日期的段落,你仍然要为没有日期的段落创建标题,因为
if date not in paragraph.text:
仍然 运行 并且将添加一个标题 document.save('example.docx')
完成更改后只需要 运行。你不需要每次都保存它。for paragraph in document.paragraphs:
无缘无故地保存最终结果。
如果您只想在整个文档中不存在该日期的情况下添加带有该日期的标题,您可以这样做(还有许多其他方法可以做到这一点,但这对我来说似乎更清晰):
if document.element.xml.find(date) == -1:
document.add_heading(date)
document.save('example.docx')