[Python] trova e sostituisci

Valerio Turturici turturici.valerio a gmail.com
Gio 15 Apr 2010 16:11:22 CEST


Valerio Pachera ha scritto:
> Ciao a tutti, vi posso dire con piacere che la mia "piccola
> applicazione web" sta cominciando a prendere vita.
> Ora apro una nuova discussione specifica per i file.
> Sto leggendo la documentazione:
> http://docs.python.org/library/stdtypes.html#bltin-file-objects
> http://diveintopython.org/file_handling/file_objects.html
> ma faccio fatica a trovare un modo semplice per fare quello che mi
> serve. Mi spiego:
>
> ho un file di configurazione che devo leggere, trovare una specifica
> riga, verificare se su questa riga è presente un valore. Se non c'è,
> lo devo appendere alla riga.
> Partiamo da un esempio:
>
> ----
> gruppo disney
> ...
> ...
> membri pippo,pluto
> ...
> ...
> ---
>
> Andiamo per step:
>
> 1) cerchiamo _solo_ la parola chiave 'membri'
>
> f = open(file.txt,r)
> for line in f.readlines()
>     if 'membri' in line: print line
> f.close
>
> questo funziona
>
> 2) Una volta individuata la riga vorrei rimuoverla e sostituirla con
> quella elaborata
>
>
> f = open(file.txt,w)
> for line in f.readlines()
>     if 'membri' in line:
>     nuova = line + 'hello world'
>     #rimuovi line
>     f.writeline(nuova)
> f.close
>
> E' possibile fare qualcosa del genere mentre si scorre il file?
> Come consigliare altrimenti di fare?
>   
Devi creare un nuovo file su cui scrivere. Una cosa tipo:

out = open("file_out.txt", 'w')

for line in open("file.txt"):
  if 'membri' in line:
    nuovo = line + 'hello world\n'
    out.write(nuovo)
  out.write(line)

out.close()




Maggiori informazioni sulla lista Python