4つのエントリを持つtkinterウィンドウを開くプログラムを作成しようとしています。ボタンを押すと、項目のすべてを.txtファイルに上から下に書き込むことになっています。私はそれが私の唯一のように動作するように管理してきましたが、唯一の問題は、すべての4つではなく、作成された.txtファイルに最後の行を書き込むことです。私はまだtkinterに取り組んでいて、新しいことをやっていて、これを修正する方法を本当に知っていません。tkinterのテキストボックスが.txtファイルに出力される問題
これは、これまでの私のコードです:
import os
from tkinter import *
fields = "Vorname", "Nachname", "Beruf", "Wohnort"
def fetch(entries):
for entry in entries:
field = entry[0]
text = entry[1].get()
textfile = open("test2.txt", "w")
textfile.write('%s: "%s"' % (field, text))
def makeform(root, fields):
entries = []
for field in fields:
row = Frame(root)
lab = Label(row, width=15, text=field, anchor='w')
ent = Entry(row)
row.pack(side=TOP, fill=X, padx=5, pady=5)
lab.pack(side=LEFT)
ent.pack(side=RIGHT, expand=YES, fill=X)
entries.append((field, ent))
return entries
if __name__ == "__main__":
root = Tk()
ents = makeform(root, fields)
root.bind("<Return>", (lambda event, e=ents: fetch(e)))
b1 = Button(root, text="Drucken",
command=(lambda e=ents: fetch(e)))
b1.pack(side=LEFT, padx=5, pady=5)
b2 = Button(root, text="Abbrechen", command=root.destroy)
b2.pack(side=LEFT, padx=5, pady=5)
root.mainloop()
ループを介して毎回書き込むファイルを開いています。それをしないでください。また、 'with'ブロックを使用してください。だから、あなたは 'with open( 'file'、 'w')をテキストファイルとして持っていなければなりません:エントリのエントリのために: –