Python:如何创建文件.txt并在其中记录信息

时间:2013-06-30 03:19:43

标签: python

我正在尝试创建一个文件.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()

* *这是我放置文件名的地方 非常感谢您提前

3 个答案:

答案 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()