Forum >> Principianti >> [risolto] Tkinter e file

Pagina: 1

Ciao a tutti.
Sto cercando di scrivere un programma, di qui gia avevo parlato in una discussione precedente, scriva su un file .csv dei dati.

Questa volta pero i dati andrebbero inseriti tramite GUI. Sto usando Tkinter.

Di seguito il codice che sto utilizzando:

from tkinter import *

def gettone():
    nome = nomep.get()
    squadriglia = squadrigliap.get()
    specialita = specialitap.get()
    primo = primop.get()
    secondo = secondop.get()
    terzo = terzop.get()
    
def scrive():
    """ciao"""
    out_file = open("luca.csv", "a")
    out_file.write(nome)
    out_file.write("\n")
    out_file.write(squadriglia)
    out_file.write("\n")
    out_file.write(specialita)
    out_file.write("\n")
    out_file.write(primo)
    out_file.write("\n")
    out_file.write(secondo)
    out_file.write("\n")
    out_file.write(terzo)
    out_file.write("\n")
    out_file.close()



ro = Tk()
ro.geometry("900x1000")
ro.title("IMPEGNI DEL SENTIERO")
a = Label(ro, text="IMPEGNI DEL SENTIERO").pack()
b = Label(ro, text="Nome file:").pack()
nomefilep = Entry(ro, text="").pack()
c = Label(ro, text="Nome:").pack()
nomep = Entry(ro).pack()
d = Label(ro, text="Squadriglia:").pack()
squadrigliap = Entry(ro).pack()
e = Label(ro, text="Specialita':").pack()
specialitap = Entry(ro,).pack()
f = Label(ro, text="Impegno per me stesso").pack()
primop = Entry(ro).pack()
g = Label(ro, text="Impegno per la squadriglia").pack()
secondop = Entry(ro).pack()
h = Label(ro, text="Impegno per il reparto").pack()
terzop = Entry(ro).pack()
salva = Button(ro, text=" SALVA ", command=gettone).pack()
ro.mainloop()

scrive()

Mi da questo errore:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\ettosilviaAppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "C:\Users\ettosilvia\Desktop\ccc.py", line 4, in gettone
    nome = nomep.get()
AttributeError: 'NoneType' object has no attribute 'get'
Traceback (most recent call last):
  File "C:\Users\ettosilvia\Desktop\ccc.py", line 51, in <module>
    nome()
  File "C:\Users\ettosilvia\Desktop\ccc.py", line 14, in nome
    out_file.write(nome)
TypeError: write() argument must be str, not function



Grazie in anticipo :ok:




--- Ultima modifica di luke in data 2018-12-27 11:45:10 ---
~luke
pack() non restituisce nulla
THE 🍺-WARE LICENSE (Revision ㊷):
<carlo@🐍.it> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
Quindi cosa dovrei usare? :sarcastic:




Grazie



~luke
laddove erroneamente scrivi

a = Label(ro, text="IMPEGNI DEL SENTIERO").pack()
assegnando ad a il valore None, dovresti scrivere ad esempio:


a = Label(ro, text="IMPEGNI DEL SENTIERO")
a.pack()
inoltre, dovresti aggiungere a gettone() la riga

global nome, squadriglia, specialita, primo, secondo, terzo
HTH,



THE 🍺-WARE LICENSE (Revision ㊷):
<carlo@🐍.it> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
Ho modificato il file come mi avevi detto.
Funziona!




Grazie mille sei stato molto di aiuto :ok:
~luke


Pagina: 1



Esegui il login per scrivere una risposta.