Salve, devo modificare l'intestazione di un file csv. Il file originale è:
"id","019 [E' la più ]","019 [Abbiamo]","019 [perché ci ]","019 [Consigli di amici]" "3","NO","NO","NO","Sì" "4","NO","Sì","Sì","NO" vorrei: "id","E' la più ","Abbiamo","perché ci","019 [Consigli di amici]" "3","NO","NO","NO","Sì" "4","NO","Sì","Sì","NO" Il programma è i seguente: NFI = 'prova_orig.csv' NFO = 'prova_mod.csv' TRANSLATE_HEADER = {'''"019 [E' la più ]"''': '''"E' la più"''', '''"019 [Abbiamo]"''': '''"Abbiamo"''', '''"019 [perché ci ]"''': '''"perché ci"''', } for k, v in TRANSLATE_HEADER.items(): print(k, '-->', v) def mod_header(line): lline = line.split(',') # for s in lline: print(s) for i in range(len(lline)): print(lline[i]) lline[i] = TRANSLATE_HEADER.get(lline[i], lline[i]) print(lline[i]) return(','.join(lline)) fi = file(NFI) fo = file(NFO, 'w') oldtext = fi.readlines() fo.write(mod_header(oldtext.pop(0))) for line in oldtext: fo.write(line) fo.close() ma ottengo: "id","019 [E' la più ]","Abbiamo","019 [perché ci ]","019 [Consigli di amici]" "3","NO","NO","NO","Sì" "4","NO","Sì","Sì","NO" Cioè i campi che contengono lettere accentate non vengono cambiati. Ma se provo le stesse cose nella shell IDLE su stringhe non lette dal file sembra che funzioni... Qualche consiglio? Grazie -- Daniele www.fugamatematica.blogspot.com giusto! nel verso forse è perché non guardiamo le cose Quando non ci capiamo, _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python