Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何订购文件行?_Python_Python 3.x_Tkinter - Fatal编程技术网

Python 如何订购文件行?

Python 如何订购文件行?,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我必须做一个代码,将产生一个GUI,显示三个类的测试结果,所有信息将在一个文件中。我已经尝试过做一些代码,我可以制作GUI和单选按钮,所有这些都可以工作,但是我得到了一个按钮,它允许你将文本框中的内容按字母顺序排列 from tkinter import * root = Tk() root.title("Test scores") root.geometry("500x300") app = Frame(root) app.grid() test1 = open("names.txt","r

我必须做一个代码,将产生一个GUI,显示三个类的测试结果,所有信息将在一个文件中。我已经尝试过做一些代码,我可以制作GUI和单选按钮,所有这些都可以工作,但是我得到了一个按钮,它允许你将文本框中的内容按字母顺序排列

from tkinter import *
root = Tk()
root.title("Test scores")
root.geometry("500x300")

app = Frame(root)
app.grid()
test1 = open("names.txt","r")
test2 = open("score.txt","r")
test3 = open("class.txt","r")
class Application(Frame):
    def __init__(self, master):
        super(Application, self).__init__(master)
        self.grid()
        self.create_widgets()
    def create_widgets(self):
        Label(self,
              text = "Which class "
              ).grid(row = 0,column = 0, sticky = W)
        Label(self,
              text = "Select a class"
              ).grid(row = 1, column = 0, sticky = W)
        self.choose = StringVar()
        self.choose.set(None)
        Radiobutton(self,
               text = "Class 1",
               variable = self.choose,
               value = test1.read(), 
               command = self.update_text
               ).grid(row = 2, column = 0, sticky = W)
        self.second = BooleanVar()
        Radiobutton(self,
               text = "Class 2",
               variable = self.choose,
               value = test2.read(),     
               command = self.update_text
               ).grid(row = 3, column = 0, sticky = W)
        self.third = BooleanVar()
        Radiobutton(self,
               text = "Class 3",
               variable = self.choose,
               value = test3.read(),     
               command = self.update_text
               ).grid(row = 4, column = 0, sticky = W)
        self.bttn = Button(self)
        self.bttn["text"] = "Alphabetical"
        self.bttn["command"] = self.update_order
        self.bttn.grid(row = 4, column = 1, sticky = W)

        self.results_txt = Text(self, width = 40, height = 5, wrap = WORD)
        self.results_txt.grid(row = 5, column = 0, columnspan = 3)

    def update_text(self):
        likes = ""
        likes += self.choose.get()
        self.results_txt.delete(0.0, END)
        self.results_txt.insert(0.0, likes)

    def update_order(self):
        sortfile = open("sorted1.txt","w")
        for line in sorted(self.results_txt, key = str.lower):
            sortfile.write(line)



app = Application(root)
root.mainloop()
这是到目前为止我的代码

我试图对它进行排序,但它不起作用。这是我在网上看到的代码

def update_order(self):
        str(sorted(self.results_txt, key=lambda student: student[2]))
如何对文件行进行排序 所以如果第一行有“name”“first score”“second score”“third score” 然后在第二行“不同的名字”“第一个分数”“第二个分数”“第三个分数”
你将如何按字母顺序对它进行排序。我需要将每个分数放在不同的文件上吗?

您安装了哪个版本的Tkinter?仅对代码进行两次更改,并使用Tkinter
“$Revision:81008$”
,您的代码对我有效:文本框得到更新。我所做的更改是:
来自Tkinter导入*
(注意大写字母)和
类应用程序(框架、对象):
在Python2.7下获得一个新样式的类。我不知道我有什么版本。如何找到
将Tkinter导入为tk;打印(传统版本)
。在许多Python模块中,在模块的
\uuuuu version\uuuuu
属性下列出它们的版本号是非常常见的。它不喜欢(t)kinter大写字母,那么您的版本与我的不同(在Python3.x中,许多模块被重写以符合PEP8,tkinter就是其中之一:大写字母是小写的)。导入tkinter的方式与代码中的方式相同。