如何从python中的用户输入创建文本文件?

如何从python中的用户输入创建文本文件?,python,file,tkinter,tkinter-entry,Python,File,Tkinter,Tkinter Entry,在我的程序中,要求用户提供他们的姓名、姓氏和高中班级。在程序的末尾有一个if语句,如果条件满足,那么我想创建一个文件来打印这些变量以及一两条消息 我还想请用户输入一个简短的关于他们自己的陈述,基本上是一个文本条目,这也将被添加到文件中 class Score_Window(tk.Toplevel): '''A simple instruction window''' def __init__(self, parent): tk.Toplevel.__init__(self, parent

在我的程序中,要求用户提供他们的姓名、姓氏和高中班级。在程序的末尾有一个if语句,如果条件满足,那么我想创建一个文件来打印这些变量以及一两条消息

我还想请用户输入一个简短的关于他们自己的陈述,基本上是一个文本条目,这也将被添加到文件中

class Score_Window(tk.Toplevel):
'''A simple instruction window'''
def __init__(self, parent):
    tk.Toplevel.__init__(self, parent)
    score_str = str(sum(parent.score_per_question.values()))
    self.score = tk.Label(self, width=80, height=4, text = "You're score was: " + score_str)
    self.score.pack(side="top", fill="both", expand=True)


    if int(score_str) >= 3:
        print("Pass")

        self.prefect = tk.Label(self, width=80, height=4, text = "You have passed, well done! You can now become a prefect.")
        self.prefect.pack(side="top", fill="both", expand=True)

        self.name = tk.Label(self, width=80, height=4, text = student_name)
        self.name.pack(side="top", fill="both", expand=True)

        self.surname = tk.Label(self, width=80, height=4, text = student_surname)
        self.surname.pack(side="top", fill="both", expand=True)

        self.tutor = tk.Label(self, width=80, height=4, text = student_tutor_group)
        self.tutor.pack(side="top", fill="both", expand=True)
我想把这些变量打印到一个文件中
您可以使用python的open语句并使用tksimpiledialog获取输入。 假设您已经设置了该类:

from Tkinter import * # tkinter in 3.0+
from tkSimpleDialog import askstring

Name = tkSimpleDialog.askstring("User data","Please enter your name")
Surname = tkSimpleDialog.askstring("User data", "Please enter your surname")
somevariable = open("data.txt", "w")
somevariable.write(Name, " ",Surname) # add a space so it is easier to read
userinfo = tkSimpleDialog.askstring("User data", "Enter something about yourself")
somevariable.write(" ",userinfo
# make if statements and a new canvas
with open("data.txt", "r") as l
    for lines in l:
        name2, Surname2, userinfo2 = lines.split()
        namelabel = label(master, text=name2)
        namelabel.pack()
        surnamelable = label(master, text=Surname2)
        surnamelable.pack()
        Userinfolabel = label(master, text= userinfo2)
        Userinfolabel.pack()
        # do whatever you want here, perhaps a reset button?

您必须手动设置主Tk类和init,因为我不知道您的代码还有什么。我甚至不知道if语句的测试条件

到目前为止,您是否为此编写了代码?你真正的问题是什么?如果您自己还没有尝试过,没有人愿意为您编写代码。不想让人讨厌或做任何事,但你会先尝试自己,当你真的陷入困境时,来这里寻求指导,从而学到更多。我保证你会有实际的问题:如果你表现出自己在解决这个问题上付出了一些努力,你会更成功地找到答案。试着自己编写代码。如果你有具体的问题,请先回来。我们不会从头开始为您编写代码。您可能正在寻找原始输入?对不起,伙计们:我已经编写好了,我的程序快完成了,这是一个十个问题的多项选择题测验。我不是在寻找一个人来编写整个代码,但简单地举一个例子来说明如何做到这一点将是一个很好的帮助w@ChetanVasudevan在不知道OP到底打算做什么的情况下,我根据编辑前的原始问题对其进行了编码,该问题只需要读取访问权限。
from Tkinter import * # tkinter in 3.0+
from tkSimpleDialog import askstring

Name = tkSimpleDialog.askstring("User data","Please enter your name")
Surname = tkSimpleDialog.askstring("User data", "Please enter your surname")
somevariable = open("data.txt", "w")
somevariable.write(Name, " ",Surname) # add a space so it is easier to read
userinfo = tkSimpleDialog.askstring("User data", "Enter something about yourself")
somevariable.write(" ",userinfo
# make if statements and a new canvas
with open("data.txt", "r") as l
    for lines in l:
        name2, Surname2, userinfo2 = lines.split()
        namelabel = label(master, text=name2)
        namelabel.pack()
        surnamelable = label(master, text=Surname2)
        surnamelable.pack()
        Userinfolabel = label(master, text= userinfo2)
        Userinfolabel.pack()
        # do whatever you want here, perhaps a reset button?