[Python] Mail from GioMBG > chiedo consigli su modifiche multiple
sullo stesso file di testo in un colpo solo con python
Francesco Guerrieri
f.guerrieri a gmail.com
Dom 30 Set 2007 22:26:32 CEST
On 9/30/07, Daniele Zambelli <daniele.zambelli a inwind.it> wrote:
> In un colpo solo non sarei capace, ma con un ciclo...
>
> sostituzioni= (('LA_BEL', '9records.com'),
> ('LA_BE_LNODOT', '9records'),
> ('CATALOGO', '9REC001'),
> ('NUMCATA', '001'),
> ('GRUPPO', 'Pippo'),
> ('SDATE', '01/01/2007'),
> ('N_ICK', 'Pluto'),
> ('N_AME', 'Minni'),
> ('SURNAM_E', 'Minorpio'),
> ('YEAR', '2007'))
>
> def sostituisci(stringa, sostituzioni):
> for prima, dopo in sostituzioni:
> stringa=stringa.replace(prima, dopo)
> return stringa
>
> testo=file('input.txt').readlines()
> nuovotesto=[sostituisci(riga, sostituzioni) for riga in testo]
>
> fo=file('output.txt', "w")
> for riga in nuovotesto:
> fo.write(riga)
> fo.close()
>
> Ciao
Se i file fossero grossi questo non è l'approccio migliore perché crei
delle liste non strettamente necessarie. Se proprio volessi usare
quest'approccio e non usare parser html, allora si potrebbe fare così:
import glob
sostituzioni= (('LA_BEL', '9records.com'),
('LA_BE_LNODOT', '9records'),
('CATALOGO', '9REC001'),
('NUMCATA', '001'),
('GRUPPO', 'Pippo'),
('SDATE', '01/01/2007'),
('N_ICK', 'Pluto'),
('N_AME', 'Minni'),
('SURNAM_E', 'Minorpio'),
('YEAR', '2007'))
def sostituisci(stringa, sostituzioni):
for prima, dopo in sostituzioni:
stringa=stringa.replace(prima, dopo)
return stringa
lista_files = glob.glob('*.html')
for filename in lista_files:
input_file = open(filename, 'r')
output_file = open(filename+'.new', 'w')
for line in input_file:
output_file.write(sostituisci(line, sostituzioni))
ciao,
francesco
Maggiori informazioni sulla lista
Python