Domanda Creare lista su un file di testo

Stato
Discussione chiusa ad ulteriori risposte.

Xenium

Utente Bronze
10 Novembre 2015
38
8
1
41
Salve ragazzi, come faccio a creare una lista in un file di testo del tipo lista={"Ciao": "Hello","Come stai?":"Bene}
Grazie in anticipo.
 
devi importare il modulo pickle, che permette di memorizzare la struttura dei dati che salvi su un file.
quindi per fare quello che vuoi fare tu:
Codice:
import pickle
esempio = open("file.pck","wb")
lista={"Ciao": "Hello","Come stai?":"Bene"}
pickle.dump(lista,esempio)
esempio.close
esempio = open("file.pck","rb")
pickle.load(esempio)
print(lista)
esempio.close
 
devi importare il modulo pickle, che permette di memorizzare la struttura dei dati che salvi su un file.
quindi per fare quello che vuoi fare tu:
Codice:
import pickle
esempio = open("file.pck","wb")
lista={"Ciao": "Hello","Come stai?":"Bene"}
pickle.dump(lista,esempio)
esempio.close
esempio = open("file.pck","rb")
pickle.load(esempio)
print(lista)
esempio.close
Grazie mille, ma come faccio a far stampare il contenuto del file non della lista? Ho provato a fare print(esempio.read()) ma come output mi torna b''
 
Sarebbe più semplice se potessi perchè sto creando una specie di intelligenza artificiale e ho bisogno del file per salvare nuove parole che vengono inserite altrimenti alla chiusura del programma tutti i dati della lista vanno persi.
Comunque ho trovato AIML che fa proprio al caso mio, è compatibile con python ma ha bisogno di un interprete. Sai per caso come installare questo interprete (si chiama PyAiml se non erro) e come usare su python il file creato in AIML?
 
Salve ragazzi, come faccio a creare una lista in un file di testo del tipo lista={"Ciao": "Hello","Come stai?":"Bene}
Grazie in anticipo.
Codice:
import json

# Per scrivere
file = open("lista.txt", "w+")
lista = {"chiave1": "valore2", "chiave2": "valore2"}
file.write(json.dumps(lista))
file.close()

# Per leggere
file = open("lista.txt", "r")
lista = json.loads(file.read())
file.close()
print(lista['chiave1']) # ti scrive valore1

# oppure
for chiave in lista:
     print(lista[chiave])
 
Codice:
import json

# Per scrivere
file = open("lista.txt", "w+")
lista = {"chiave1": "valore2", "chiave2": "valore2"}
file.write(json.dumps(lista))
file.close()

# Per leggere
file = open("lista.txt", "r")
lista = json.loads(file.read())
file.close()
print(lista['chiave1']) # ti scrive valore1

# oppure
for chiave in lista:
     print(lista[chiave])
Grazie per la risposta ma io intendevo che quando stampa il valore, questo valore lo prende dal file non dalla lista.
 
Infatti carica la lista in memoria dai file e poi puoi avere accesso a tutti i valori senza doverli ogni volta leggere singolarmente.
E come faccio a far stampare un valore della lista che si trova all'interno del file?
Nell'esempio che hai inviato print(lista['chiave1']), il valore corrispondente a chiave1 lo va cercare all'interno della lista creata su python non nel file.. Non so se mi spiego..
 
E come faccio a far stampare un valore della lista che si trova all'interno del file?
Nell'esempio che hai inviato print(lista['chiave1']), il valore corrispondente a chiave1 lo va cercare all'interno della lista creata su python non nel file.. Non so se mi spiego..
Se leggi per bene l'esempio, lo script che ti ho inviato fa quanto segue:
1) Prende il dizionario lista (con tutti i valori che hai messo tu dentro) e lo salva nel file
2) Legge il file salvato e carica tutti i dati in una variabile chiamata lista

Dopo puoi ottenere i valori salvati in lista direttamente leggendoli dalla memoria (che a sua volta contiene i dati LETTI dal file che prima ancora HAI SCRITTO).

Spero di essere stato chiaro :)
 
Ah ok, avevo capito male... Comunque ho provato a fare un programma dove vengono inseriti dei dati e poi vengono caricati all'interno del file... ma ogni volta che riaccendo il programma i valori non ci sono più...Potresti aiutarmi?
 
Il problema è che ogni volta che viene avviato il programma il dizionario viene caricato all'interno del file e i dati precedenti vengono eliminati, esatto?
 
Stato
Discussione chiusa ad ulteriori risposte.