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
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a