[Python] togliere spazi finali da ogni singola riga di un testo

Lorenzo Sutton lorenzofsutton a gmail.com
Dom 2 Set 2012 16:37:04 CEST


On 02/09/12 09:18, Federico Bruni wrote:
> Buongiorno a tutti
>
> 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?

Ciao, partendo dal tuo iniziale tentativo mi permetto di provare un 
approccio un po' diverso a quelli suggeriti:

def endstrip(s):
     """ Strip the end of the string, like rstrip but also but also 
multiline """
     for i in xrange(len(s)-1,0,-1):
         if not s[i].isspace():
             return s[0:i+1]
 >>> endstrip("Ciao   \nSono un volenteroso    ")
'Ciao   \nSono un volenteroso'
 >>> endstrip("a b c d e ")
'a b c d e'
 >>> endstrip("\n\n")
 >>> endstrip("\n\nabcde\n\n")
'\n\nabcde'

Ovviamente non č strettamente necessario metterlo in una funzione :)

Lorenzo


Maggiori informazioni sulla lista Python