n° 219
Novembre 2017
Dicembre 17, 2017, 11:58:24 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Recupero stringa da casella di testo python  (Letto 1908 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
Francesco2311
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 25


Mostra profilo
« inserita:: Ottobre 23, 2016, 06:09:21 »

Salve a tutti
Sto cercando di realizzare un programma in python che crei un file con nome scelto dall'utente.
La libreria usata per costruire l'interfaccia è Tkinter.
L'utente deve inserire il nome del file in una casella di testo e una funzione deve recuperarlo per poi poter creare il file.
Il problema è che non so come recuperare questo dato.
Codice:
casella = Entry(textvariable=nome).pack()
b = Button(text="Crea",command=funzione).pack()
Ora con quale codice all'interno della funzione recupero il valore contenuto in "nome"?
Registrato

Il computer non è una macchina intelligente per persone stupide, ma una macchina stupida per persone intelligenti
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #1 inserita:: Ottobre 23, 2016, 07:20:06 »

Si possono avere diversi casi, ad esempio di nomi già esistenti. Ad ogni modo, ad esempio per un caso semplice:

open(nome, 'w')

crea il file se questo non esiste.
Registrato
Francesco2311
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 25


Mostra profilo
« Risposta #2 inserita:: Ottobre 24, 2016, 05:18:21 »

Il problema è che in questo modo la variabile non viene aggiornata con il contenuto della casella di testo
Registrato

Il computer non è una macchina intelligente per persone stupide, ma una macchina stupida per persone intelligenti
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #3 inserita:: Ottobre 24, 2016, 05:48:11 »

Ma il nome va passato attraverso la casella di testo.

Altrimenti detto: lanci l'interfaccia, scrivi un nome nella suddetta casella, in maniera trasparente all'utente quanto scritto dall'utente viene passato a open() quindi creato il file.

Questa è la dinamica più banale e semplice (sicuramente alla fine dovrà essere modificata, ma intanto si inizia ad avere un primordiale risultato).
Registrato
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #4 inserita:: Ottobre 24, 2016, 05:57:08 »

Ecco uno rapido e basilare da modificare a seconda delle proprie esigenze:

Codice:
from Tkinter import *
root = Tk()

def clicked():
    Input = entry1.get()
    FileName = str("filepath" + Input + ".txt")
    TextFile = open(FileName,"w")

entry1 = Entry(root)
button1 = Button(root,text="Press to create text file", command = clicked)
entry1.pack()
button1.pack()

root.mainloop()

Fonte: StackOverflow
Registrato
Francesco2311
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 25


Mostra profilo
« Risposta #5 inserita:: Ottobre 25, 2016, 06:19:16 »

Grazie mille, il problema era l'impacchettamento sulla stessa riga.
Quando impacchettavo la casella di testo sulla stessa riga in cui la definivo mi dava l'errore "NoneType object has no attribute get"
Impacchettandola su un'altra riga invece il tutto funziona
Registrato

Il computer non è una macchina intelligente per persone stupide, ma una macchina stupida per persone intelligenti
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines