[Python] Eliminare carattere fine riga

2012-07-24 Per discussione Lorenzo Macchiavelli
Buongiorno a tutti.

creando una tupla da un file di testo, mi ritrovo il fine riga \n

listP = tuple(open(folfderList, 'r'))

come posso eliminarlo in maniera non troppo macchinosa?


Lorenzo Macchiavelli

web designer
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Eliminare carattere fine riga

2012-07-24 Per discussione Walter Valenti


 

Buongiorno a tutti.


creando una tupla da un file di testo, mi ritrovo il fine riga \n 


listP = tuple(open(folfderList, 'r'))


come posso eliminarlo in maniera non troppo macchinosa?



stringa.rstrip()

Walter

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Eliminare carattere fine riga

2012-07-24 Per discussione Alberto Granzotto
2012/7/24 Lorenzo Macchiavelli lmacchiave...@gmail.com:
 Buongiorno a tutti.

 creando una tupla da un file di testo, mi ritrovo il fine riga \n

 listP = tuple(open(folfderList, 'r'))

 come posso eliminarlo in maniera non troppo macchinosa?

se il file non è enorme puoi fare:
 listP = open(folfderList, 'r').read().split('\n')

[occhio che ti tiene tutto in memoria]

ciao,
alberto
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Eliminare carattere fine riga

2012-07-24 Per discussione Marco Beri
2012/7/24 Walter Valenti waltervale...@yahoo.it

 stringa.rstrip()


Giusto, ma meglio ricordare che vengono rimossi anche gli spazi bianchi, i
tab, i CR (carriage return), i LF (line feed), i FF (form feed) e i VT
(vertical tab):

 fwefw   \n\r\t\f\v.rstrip()
'fwefw'

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Eliminare carattere fine riga

2012-07-24 Per discussione Daniele Varrazzo

On 2012-07-24 12:18, Marco Beri wrote:

2012/7/24 Walter Valenti waltervale...@yahoo.it


stringa.rstrip()



Giusto, ma meglio ricordare che vengono rimossi anche gli spazi 
bianchi, i
tab, i CR (carriage return), i LF (line feed), i FF (form feed) e i 
VT

(vertical tab):


fwefw   \n\r\t\f\v.rstrip()

'fwefw'


...quindi si può anche dire che rstrip('\n') fa quello che era stato 
chiesto: cancella i LF finali senza toccare i whitespace.


In [1]: 'fwefw   \n'.rstrip('\n')
Out[1]: 'fwefw   '

In windows forse rstrip('\r\n') è anche meglio, ma non sono sicuro 
sia necessario (forse py converte CRLF - LF? Non mi ricordo).



--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Eliminare carattere fine riga

2012-07-24 Per discussione Lorenzo Sutton

On 24/07/12 13:18, Marco Beri wrote:
2012/7/24 Walter Valenti waltervale...@yahoo.it 
mailto:waltervale...@yahoo.it


stringa.rstrip()


Giusto, ma meglio ricordare che vengono rimossi anche gli spazi 
bianchi, i tab, i CR (carriage return), i LF (line feed), i FF (form 
feed) e i VT (vertical tab):


 fwefw   \n\r\t\f\v.rstrip()
'fwefw'

Però accetta anche un argomento opzionale che limita la stringa strippata:

 asdasds  \n\r\t\f\vmario.rstrip('\n')
'asdasds  \n\r\t\x0c\x0bmario'
 asdasds  \n\r\t\f\vmario.rstrip('mario')
'asdasds  \n\r\t\x0c\x0b'

C'è da tenere presente (se rilevante) il problema della stringa che 
rappresenta il newline su piattaforme diverse.


Lorenzo.



Ciao.
Marco.

--
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro




___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Eliminare carattere fine riga

2012-07-24 Per discussione Marco Beri
2012/7/24 Lorenzo Sutton lorenzofsut...@gmail.com

  asdasds  \n\r\t\f\vmario.rstrip('**mario')
 'asdasds  \n\r\t\x0c\x0b'


Questo non fa quello che pensi ma strippa tutte le m, le a, ecc.

 aaarroim.rstrip(mario)
''

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Eliminare carattere fine riga

2012-07-24 Per discussione Marco Beri
2012/7/24 Daniele Varrazzo p...@develer.com

 In windows forse rstrip('\r\n') è anche meglio, ma non sono sicuro sia
 necessario (forse py converte CRLF - LF? Non mi ricordo).


Secondo me non converte.

marcob@pc-beruntu:~$ od -c x
000  \r  \n
002
marcob@pc-beruntu:~/tmp$ python
Python 2.7.2+ (default, Oct  4 2011, 20:03:08)
[GCC 4.6.1] on linux2
Type help, copyright, credits or license for more information.
 file(x, r).read()
'\r\n'
 file(x, rb).read()
'\r\n'

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Eliminare carattere fine riga

2012-07-24 Per discussione Alberto Granzotto
2012/7/24 Marco Beri marcob...@gmail.com:
 2012/7/24 Daniele Varrazzo p...@develer.com

 In windows forse rstrip('\r\n') è anche meglio, ma non sono sicuro sia
 necessario (forse py converte CRLF - LF? Non mi ricordo).


 Secondo me non converte.

 marcob@pc-beruntu:~$ od -c x
 000  \r  \n
 002
 marcob@pc-beruntu:~/tmp$ python
 Python 2.7.2+ (default, Oct  4 2011, 20:03:08)
 [GCC 4.6.1] on linux2
 Type help, copyright, credits or license for more information.
 file(x, r).read()
 '\r\n'
 file(x, rb).read()
 '\r\n'


Converte se glielo dite (aka operatore 'U') :D

 open('foo.txt', 'wb').write(1\n2\r\n3\n)

 open('foo.txt', 'r').read().split('\n')
['1', '2\r', '3', '']

 open('foo.txt', 'rU').read().split('\n')
['1', '2', '3', '']

ref: http://docs.python.org/library/functions.html#open

ciao!
alberto
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Eliminare carattere fine riga

2012-07-24 Per discussione Daniele Varrazzo

On 2012-07-24 13:14, Marco Beri wrote:

2012/7/24 Daniele Varrazzo p...@develer.com

In windows forse rstrip('\r\n') è anche meglio, ma non sono sicuro 
sia

necessario (forse py converte CRLF - LF? Non mi ricordo).



Secondo me non converte.

marcob@pc-beruntu:~$ od -c x


Che fai, testi su linux se lo script funziona in windows? :)

Intendevo questo: 
http://docs.python.org/release/2.3/whatsnew/node7.html. Non mi ricordo 
se *in windows* ottieni \r\n oppure \n quando leggi in modo testo un 
file che contiene \r\n.


Su linux gli universal newline sono disabilitati di default. Mi sembra 
che su windows siano abilitati di default ma non ne sono sicuro. 
Qualcuno può fare una prova?


python -c print 'hello'; print 'world'  test
python -c print list(open('test', 'r'))
python -c print list(open('test', 'rU'))

Cosa restituiscono gli ultimi 2 comandi in windows?

--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Eliminare carattere fine riga

2012-07-24 Per discussione Lorenzo Sutton

On 24/07/12 14:10, Marco Beri wrote:
2012/7/24 Lorenzo Sutton lorenzofsut...@gmail.com 
mailto:lorenzofsut...@gmail.com


 asdasds  \n\r\t\f\vmario.rstrip('mario')
'asdasds  \n\r\t\x0c\x0b'


Questo non fa quello che pensi ma strippa tutte le m, le a, ecc.

 aaarroim.rstrip(mario)
''


Grazie per la doverosa precisazione!
In effetti strippa tutte le m, a ecc. a destra

 mario sono mario hai capito o no che sono 
maarioom.rstrip('mario')

'mario sono mario hai capito o no che sono '

usando il primo carattere non matchato del set dato come argomento come 
'confine' a destra e/o sinistra a seconda del tipo di strip


 'aaaiiirrrMrmmmo'.rstrip('mario')
'aaaiiirrrM'
 'aaaiiirrrMrmmmo'.lstrip('mario')
'Mrmmmo'
 'aaaiiirrrMrmmmo'.strip('mario')
'M'

Nel caso delle \n quindi direi che .rstrip('\n') strippa tutte le \n 
a destra fino a qualcosa che non sia una \n:

 'e adesso basta co sto povero mario!\n\n\n\n\n\n\n'.rstrip('\n')
'e adesso basta co sto povero mario!'

Lorenzo.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Eliminare carattere fine riga

2012-07-24 Per discussione Marco De Paoli
 Su linux gli universal newline sono disabilitati di default. Mi sembra che
 su windows siano abilitati di default ma non ne sono sicuro. Qualcuno può
 fare una prova?

 python -c print 'hello'; print 'world'  test
 python -c print list(open('test', 'r'))
 python -c print list(open('test', 'rU'))

 Cosa restituiscono gli ultimi 2 comandi in windows?


Microsoft Windows XP [Versione 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\dexpython -c print 'hello'; print 'world' 
test

C:\Documents and Settings\dexpython -c print list(open('test', 'r'))
['hello\n', 'world\n']

C:\Documents and Settings\dexpython -c print list(open('test', 'rU'))
['hello\n', 'world\n']

C:\Documents and Settings\dexpython
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit
(Intel)] on
win32
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Eliminare carattere fine riga

2012-07-24 Per discussione Daniele Varrazzo

On 2012-07-24 13:44, Marco De Paoli wrote:
Su linux gli universal newline sono disabilitati di default. Mi 
sembra che
su windows siano abilitati di default ma non ne sono sicuro. 
Qualcuno può

fare una prova?

python -c print 'hello'; print 'world'  test
python -c print list(open('test', 'r'))
python -c print list(open('test', 'rU'))

Cosa restituiscono gli ultimi 2 comandi in windows?



Microsoft Windows XP [Versione 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\dexpython -c print 'hello'; print 
'world' 

test

C:\Documents and Settings\dexpython -c print list(open('test', 
'r'))

['hello\n', 'world\n']

C:\Documents and Settings\dexpython -c print list(open('test', 
'rU'))

['hello\n', 'world\n']

C:\Documents and Settings\dexpython
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit
(Intel)] on
win32


Grazie, in questo caso rstrip('\n') dovrebbe funzionare senza 
problemi anche su windows (ma non su file con CRLF in linux, a meno che 
non sia stato aperto con 'rU').



--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Eliminare carattere fine riga

2012-07-24 Per discussione Lorenzo Macchiavelli
Grazie!
deve girare solo su windows,

con rstrip

su questo :

fine_pagina
inizio_pagina
invia_pagina
menu_canali
testo spa zi a to

listP = tuple(open(folfderList,'r').read().rstrip('\n'))

('f', 'i', 'n', 'e', '_', 'p', 'a', 'g', 'i', 'n', 'a', '\n', 'i', 'n',
'i', 'z', 'i', 'o', '_', 'p', 'a', 'g', 'i', 'n', 'a', '\n', 'i', 'n', 'v',
'i', 'a', '_', 'p', 'a', 'g', 'i', 'n', 'a', '\n', 'm', 'e', 'n', 'u', '_',
'c', 'a', 'n', 'a', 'l', 'i', '\n', 't', 'e', 's', 't', 'o', ' ', 's', 'p',
'a', ' ', 'z', 'i', ' ', 'a', ' ', 't', 'o')


invece con split:

 listP = tuple(open(folfderList,'r').read().split('\n'))

('fine_pagina', 'inizio_pagina', 'invia_pagina', 'menu_canali', 'testo spa
zi a to')


Cosa ho combinato con rstrip?

Ciao

Lorenzo Macchiavelli

web designer
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Eliminare carattere fine riga

2012-07-24 Per discussione Lorenzo Sutton

On 24/07/12 15:27, Lorenzo Macchiavelli wrote:

Grazie!
deve girare solo su windows,

con rstrip

su questo :

fine_pagina
inizio_pagina
invia_pagina
menu_canali
testo spa zi a to

listP = tuple(open(folfderList,'r').read().rstrip('\n'))

('f', 'i', 'n', 'e', '_', 'p', 'a', 'g', 'i', 'n', 'a', '\n', 'i', 
'n', 'i', 'z', 'i', 'o', '_', 'p', 'a', 'g', 'i', 'n', 'a', '\n', 'i', 
'n', 'v', 'i', 'a', '_', 'p', 'a', 'g', 'i', 'n', 'a', '\n', 'm', 'e', 
'n', 'u', '_', 'c', 'a', 'n', 'a', 'l', 'i', '\n', 't', 'e', 's', 't', 
'o', ' ', 's', 'p', 'a', ' ', 'z', 'i', ' ', 'a', ' ', 't', 'o')



invece con split:

 listP = tuple(open(folfderList,'r').read().split('\n'))

('fine_pagina', 'inizio_pagina', 'invia_pagina', 'menu_canali', 'testo 
spa zi a to')



Cosa ho combinato con rstrip?


Niente, il problema non è rstrip: Prova a vedere cosa succede senza il 
rstrip...


Lorenzo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python