2017-06-21 16 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:は、明白な理由なしに最終結果を保存し続けます。

ドキュメント全体に存在しない場合にのみ、その日付の見出しを追加したい場合は、このようなことをすることができます(他にもたくさんの方法がありますが、これは私にとってはよりクリーンです)。

関連する問題