我正在尝试创建一个文件.txt并保存用户提供的信息,并在python中打开文件 我在创建文件时遇到了麻烦
这是我的代码
from Tkinter import *
raiz = Tk()
frame = Frame(raiz)
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():
******.insert('','end',text=nome.get(), values=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():
w = Button(raiz, text='Cadastrar',command=cadastro).grid()
x = Button(raiz, text='Listar').grid()
raiz.mainloop()
* *这是我放置文件名的地方 非常感谢您提前
答案 0 :(得分:3)
您可以使用open built-in获取具有写入权限的文件对象,然后使用write function填充内容:
file = open('<FILENAME>.txt', 'w')
file.write('first line\n')
file.write('second line\n')
file.close()
查看链接的文档,了解有关开放参数和其他有用功能的更多信息,例如writelines。
答案 1 :(得分:2)
这是代码,我重新设计了它以满足您的要求。反馈将非常感谢
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文件中的数据)
这是一个样本:
姓名: K-DawG 电话号码: 911
这里的关键是使用with as
语句,有关更多信息,请查看Codeacademy在python上的course
使用列表并且 insert()方法肯定不是解决此问题的最佳选择,而是如果您使用我的方法并使用分隔符写入.csv文件,该程序最终可能是值得的
答案 2 :(得分:1)
我找到了一种使用python的内置IO函数抽象文件概念的简单方法。我在博客上写了here
如果要写入文件,只需执行
import sys
sys.stdout = open ("Output.txt", "w")
print "Name :", str(nome.get()), "Telephone No :", str(celular.get())
如果您想从文件中读取,只需执行
import sys
sys.stdin = open ("Input.txt", "r")
print raw_input()