这是代码,我重新设计了它以满足您的要求。如有反馈,不胜感激from Tkinter import *
raiz = Tk()
frame = Frame(raiz)
out = []
def cadastro():
form = Toplevel(raiz)
Label(form, text='Nome: ').grid(column=0, row=0, sticky=E)
Label(form, text='Celular: ').grid(column=0, row=1, sticky=E)
nome = StringVar()
celular = StringVar()
a=Entry(form, textvariable=nome, width=15)
a.grid(column=1, row=0, sticky=W)
Entry(form, textvariable=celular, width=15).grid(column=1, row=1, sticky=W)
def onCancel():
form.destroy()
def onOk():
with open('outt.txt','w') as txt:
txt.write('Name : ' + str(nome.get()) + ' ' + 'Telephone No. : ' + str(celular.get()))
onCancel()
Button(form, text='OK', command=onOk).grid(column=0, row=2, sticky=E)
Button(form, text='Cancel', command=onCancel).grid(column=1, row=2, sticky=W)
def listar():
with open('outt.txt','r') as txt_read:
print txt_read.read()
w = Button(raiz, text='Cadastrar',command=cadastro).grid()
x = Button(raiz, text='Listar' , command=listar).grid()
raiz.mainloop()
输入数据后,如果您单击listar,您可以在屏幕上看到输出(尽管您可以手动查看保存在.txt文件中的数据)
下面是一个示例:Name : K-DawG Telephone No. : 911
这里的关键是使用with as语句,有关更多信息,请查看codeaccademy的courseon python
对于这个问题,使用list和insert()方法肯定不是最好的选择,但是如果您使用我的方法并使用分隔符写入一个.csv文件,那么这个程序最终可能是值得的