la linea che devo sostituire cambia ogni giorno, e quindi non so cosa trovare per cambiare.
Se non hai criteri su cui agire, ben difficilmente puoi agire, mi sembra ... "al volo" mi pare sia la soluzione più ovvia.
Per il ciclo si può gestire per singola riga?
Certamente, un esempio "volante" e minimale, supponiamo di avere un file "apelle", così fatto:
NzP:~$ cat apelle
Apelle figlio di Apollo
fece una palla di pelle di pollo
e tutti i pisci vennero a galla
per vedere la palla di pelle di pollo
fatta da Apelle figlio di Apollo
Supponiamo, che vogliamo sostituire l'intera riga contenente "pisci", potremmo memorizzarci tutte le righe, quindi riscrivere il file, sostituendo solo quella riga, p.e. così
>>> with open('apelle', 'r') as f:
righe = f.readlines()
>>> new_riga = 'e tutti i pesci vennero a galla'
>>> with open('apelle', 'w') as f:
for r in righe:
if 'pisci' in r:
f.write(new_riga + '\n')
else:
f.write(r)
24
33
32
38
33
>>>
il risultato sarà
NzP:~$ cat apelle
Apelle figlio di Apollo
fece una palla di pelle di pollo
e tutti i pesci vennero a galla
per vedere la palla di pelle di pollo
fatta da Apelle figlio di Apollo
NzP:~$
Come detto, è un esempio minimale, se leggi la docs e fai delle prove troverai metodi migliori.
Ciao