[Python] togliere spazi finali da ogni singola riga di un testo
Andrea Ambu
andreambu a gmail.com
Dom 2 Set 2012 09:42:30 CEST
2012/9/2 Federico Bruni <fedelogy a gmail.com>:
> Buongiorno a tutti
>
Ciao Federico
> s = 'Ciao mondo '
> s = s.rstrip()
> print(s)
> Ciao mondo
>
> Questo funziona.
> Se invece ho una stringa con pił linee ho dei problemi.
> Ho provato questo ma non va:
>
> s = 'Ciao mondo \nsono un newbie '
> for line in s:
> s = line.rstrip()
> print(s)
>
> Ha cancellato tutto.
> Dove sbaglio?
> Mi sapete dire anche cosa mi devo leggere della documentazione di python
> (nel tutorial?) per capire il mio errore?
>
Ci sono un po' di cose strane, mi pare che tu voglia come risultato:
s = 'Ciao mondo\nsono un newbie', giusto?
Se vuoi rimuovere gli spazi a destra di ogni linea devi iterare sulle
linee, "for line in s" non funziona come pensi, in quel modo stai
iterando sui singoli caratteri di s.
Dovresti fare: "for line in s.split('\n')"
Inoltre riassegni s dentro il for, e questo non e` cosa buona perche`
probabilmente non fa quello che ti aspetti di nuovo, potresti fare una
cosa del genere:
clean_lines = []
for line in s.split('\n'): clean_lines.append(line.rstrip())
s = '\n'.join(clear_lines)
O nella versione piu` compatta:
s = '\n'.join(line.rstrip() for line in s.split('\n'))
Guarda come funzionano join e split su
http://docs.python.org/library/string.html e come si itera su una
stringa.
Ciao,
Andrea
Maggiori informazioni sulla lista
Python