Ho un dizionario:Python: Scrivi dizionario in un file CSV con una riga per ogni 'chiave: valore'
mydict = {key1: value_a, key2: value_b, key3: value_c}
voglio scrivere i dati in un file dict.csv , in questo stile:
key1: value_a
key2: value_b
key3: value_c
ho scritto:
import csv
f = open('dict.csv','wb')
w = csv.DictWriter(f,mydict.keys())
w.writerow(mydict)
f.close()
Ma ora ho tutte le chiavi in una riga e tutto valu es nella riga successiva ..
Quando riesco a scrivere un file come questo, voglio anche leggerlo in un nuovo dizionario.
Giusto per spiegare il mio codice, il dizionario contiene valori e bool da textctrls e checkbox (usando wxpython). Voglio aggiungere i pulsanti "Salva impostazioni" e "Carica impostazioni". Le impostazioni di salvataggio devono scrivere il dizionario nel file nel modo menzionato (per facilitare all'utente la modifica diretta del file csv), le impostazioni di caricamento dovrebbero leggere dal file e aggiornare i textctrls e le caselle di controllo.
puoi fornire un esempio migliore di ciò che vuoi come output? lo "stile" che hai sopra non è CSV. stai cercando 'key1, value_a [linebreak] key2, value_b [linebreak] key3, value_c'? – tkone
Un altro approccio è usare 'repr()' per scrivere il dettato e poi valutare la stringa quando la leggi. Guarda questo [vecchio post SO] (http://stackoverflow.com/questions/1436703/difference- tra-str-e-repr-in-python) per una discussione di 'str()' vs. 'repr()', e [i documenti] (http://docs.python.org/library/functions.html #repr), anche. –
Oltre alla mia risposta qui sotto, se si preferisce qualcosa di un po 'più sofisticato di un semplice file CSV, si consiglia di controllare il modulo 'ConfigParser' –