2017-06-21 152 views
1

程序在文檔中創建一個標題(當前日期),如果該標題已經在文檔中,我想避免標題可能出現重複。我的代碼創建一個標題,但也重複。我應該在代碼中更改該程序避免重複的內容?如何避免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) 
+1

添加'duplicate(document)'作爲代碼的最後一行。你已經定義了一個函數,但從來沒有調用它 – inspectorG4dget

+0

感謝您的回答。現在它創建一個標題,但也重複。 – BohdanS

回答

1

在這個問題上的許多問題:

  1. 應該是:datetime.date.today().strftime('%A, %d. %B %Y')
  2. 你的代碼查找日期在每一段,如果它不存在,該段,它增加了一個標題與日期。這意味着即使你有一個具有日期的段落,你仍然會爲沒有的段落創建標題,因爲if date not in paragraph.text:仍然運行並且將添加標題
  3. document.save('example.docx')只需要在「重做改變它。你不需要每次都保存它。 for paragraph in document.paragraphs:一直沒有明顯的原因保存最終結果。

如果你想添加一個只有當它不存在於整個文檔中的標題,你可以做這樣的事情(還有很多其他的方式,但這對我來說似乎更清潔):

if document.element.xml.find(date) == -1: 
    document.add_heading(date) 
document.save('example.docx')