Sto scrivendo un piccolo programma che ti aiuta a tenere traccia della pagina in cui ti trovi nei tuoi libri. Non sono un fan dei segnalibri, quindi ho pensato "E se potessi creare un programma che prenda l'input dell'utente, e poi mostri il numero o la stringa di testo che hanno scritto, che in questo caso sarebbe il numero di pagina" re e permetti loro di cambiarlo ogni volta che ne hanno bisogno? " Basterebbero solo poche righe di codice, ma il problema è: come posso ottenere di visualizzare lo stesso numero la prossima volta che apro il programma? Le variabili si resetterebbero, vero? C'è un modo per cambiare in modo permanente una variabile in questo modo?Cambia la variabile in modo permanente
risposta
È possibile memorizzare i valori in un file e caricarli all'avvio.
Il codice sarà un po 'come questo
variable1 = "fi" #start the variable, they can come from the main program instead
variable2 = 2
datatowrite = str(variable1) + "\n" + str(variable2) #converts all the variables to string and packs them together broken apart by a new line
f = file("/file.txt",'w')
f.write(datatowrite) #Writes the packed variable to the file
f.close() #Closes the file !IMPORTANT TO DO!
il codice per leggere i dati potrebbe essere:
import string
f = file("/file.txt",'r') #Opens the file
data = f.read() #reads the file into data
if not len(data) > 4: #Checks if anything is in the file, if not creates the variables (doesn't have to be four)
variable1 = "fi"
variable2 = 2
else:
data = string.split(data,"\n") #Splits up the data in the file with the new line and removes the new line
variable1 = data[0] #the first part of the split
variable2 = int(data[1]) #Converts second part of strip to the type needed
Tenete a mente con questo metodo il file variabile viene memorizzata in chiaro con l'applicazione . Ogni utente potrebbe modificare le variabili e modificare il comportamento dei programmi
Anche se questo non è quello che ho effettivamente usato per risolvere il mio problema, questo è molto utile, e quindi per gli altri per vedere, io lo accetto come risposta – MalyG
È necessario memorizzarlo su disco. A meno che non vogliate essere davvero fantasiosi, potete semplicemente usare qualcosa come CSV, JSON o YAML per semplificare i dati strutturati.
Controllare anche il modulo pickle python.
variabili hanno diverse vite:
- Se sono all'interno di un blocco di codice, il loro valore esiste solo per quel blocco di codice. Questo copre funzioni, loop e condizioni.
- Se sono all'interno di un oggetto, il loro valore esiste solo per la vita di quell'oggetto.
- Se l'oggetto è dereferenziato o si lascia il codice di blocco in anticipo, il valore della variabile viene perso.
Se si desidera mantenere il valore di qualcosa in particolare, si deve persistono esso. Persistence consente di scrivere una variabile su disco (e sì, i database sono tecnicamente out-to-disk) e di recuperarli in un secondo momento, una volta scaduta la durata della variabile o quando il programma viene riavviato.
Hai diverse opzioni su come vuoi mantenere la posizione della loro pagina: un approccio ambiguo sarebbe usare SQLite; un approccio leggermente meno pesante sarebbe quello di unpickle l'oggetto, o semplicemente scrivere in un file di testo.
- 1. Cambia codice pagina in CMD in modo permanente?
- 2. La variabile copiata cambia l'originale?
- 3. come aumentare la memoria heap java in modo permanente?
- 4. aumenta la dimensione dell'heap java in modo permanente?
- 5. mysql dichiarazioni preparate in modo permanente
- 6. Come aggiornare in modo permanente iptables
- 7. Hibernate OneToMany List ordina in modo permanente ma sta invertendo?
- 8. Come impostare in modo programmatico una variabile di ambiente permanente in Linux?
- 9. julia @printf cambia la mia variabile
- 10. Cambia la variabile CSS usando jQuery
- 11. È possibile impostare una variabile d'ambiente da Python in modo permanente?
- 12. Come disattivare il debugging in disassembly in modo permanente?
- 13. Come impostare JAVA_HOME in Mac in modo permanente?
- 14. Come disabilitare stringsAsFactors = TRUE in data.frame in modo permanente?
- 15. Che cosa è un modo infallibile per impostare in modo permanente la directory di lavoro R?
- 16. Disabilitare l'integrazione Git in Visual Studio 2015 in modo permanente
- 17. Come dovrei ripetere un'azione in modo permanente in Swift?
- 18. Come caricare i pacchetti in Octave in modo permanente?
- 19. Come disattivare in modo permanente Correzione automatica in iOS Simulator?
- 20. LocalStage permanente in Awesomium
- 21. Come rimuovo in modo permanente i file (cancellati) dalla cronologia?
- 22. IOS barra di stato 4.3 nascondere in modo permanente
- 23. Aprire l'elenco a discesa in modo permanente di select2
- 24. Cambia CSS in modo dinamico
- 25. E 'possibile danneggiare l'hardware in modo permanente tramite software?
- 26. È possibile ignorare in modo permanente un ramo remoto?
- 27. Mettere un NSWindow trasparente in modo permanente su un'altra NSWindow
- 28. Magento cambia il layout dinamicamente tramite la variabile di sistema
- 29. Come impostare arricciatura per utilizzare in modo permanente un proxy?
- 30. Permanentemente e riordinando i record in modo permanente
sicuro archiviarlo in un file pickle o database ... –
@JoranBeasley Grazie, ma non sono sicuro di come fare uno di quelli. Se potessi illuminarmi, sarebbe fantastico! – MalyG
Oppure scrivere il valore in un file di testo e leggere quel valore dal file di testo quando viene caricato il programma. Date un'occhiata a: http://docs.python.org/2/tutorial/inputoutput.html – adchilds