Almacenar los datos de un alumno

Introducir las notas de un alumno, en un archivo llamado datos.txt, si el usuario pulsa Almacenar o Salir para abandonar el programa. Pantalla será similar a la siguiente:

Código

import os
from tkinter import *
ventana = Tk()
def guardar_archivo():
    #Saca los datos del entorno gráfico
    nombre=nombre_p.get()
    nota=nota_p.get()
    resultado=nombre+"\t"+nota
    datos.set(resultado)
    nombre_archivo="datos1.txt"
    #Verifica si existe el archivo, para saber como debe abrirlo
    if os.path.exists(nombre_archivo):
            print("Existe el archivo")
            existe="a"
    else:
        print("El archivo no existe")
        existe="w"
    #Guarda los datos
    archivo=open(nombre_archivo,existe)
    archivo.write(nombre+";"+nota+"\n")
    archivo.close()
    
# damos título a la ventana
ventana.title("Ejemplo con marco")
# la hacemos de dimensiones fijas
ventana.resizable(False, False)
# ancho y alto de la ventana
ventana.geometry("550x550") 
# etiqueta del título del formulario (no de la ventana)
#Crea los widgets
nombre_e=Label(ventana,text="Nombre")
nombre_e.grid(row=5,column=10)
nombre_p=Entry(ventana)
nombre_p.grid(row=5,column=15)
nota_e=Label(ventana,text="Nota")
nota_e.grid(row=7,column=10)
nota_p=Entry(ventana)
nota_p.grid(row=7,column=15)
#Crea el marco para agrupar los botones
marco=LabelFrame(ventana,text="Agrupar botones")
marco.grid(row=10,column=20)
datos=StringVar()
mensaje=Label(ventana,textvariable=datos)
mensaje.grid(row=11,column=10)
guardar=Button(marco,text="Almacenar",command=guardar_archivo)
guardar.grid(row=8,column=20)
salir=Button(marco,text="Salir",command=ventana.destroy)
salir.grid(row=8,column=30)
ventana.mainloop()

Última actualización