[Python] Eliminare carattere fine riga

2012-07-24 Thread 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 Thread 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 Thread Alberto Granzotto
2012/7/24 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?

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 Thread Marco Beri
2012/7/24 Walter Valenti 

> 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 Thread Daniele Varrazzo

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

2012/7/24 Walter Valenti 


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 Thread Lorenzo Sutton

On 24/07/12 13:18, Marco Beri wrote:
2012/7/24 Walter Valenti >


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 Thread Marco Beri
2012/7/24 Lorenzo Sutton 

> >>> "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 Thread Marco Beri
2012/7/24 Daniele Varrazzo 

> 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 Thread Alberto Granzotto
2012/7/24 Marco Beri :
> 2012/7/24 Daniele Varrazzo 
>>
>> 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 Thread Daniele Varrazzo

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

2012/7/24 Daniele Varrazzo 

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: 
. 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 Thread Lorenzo Sutton

On 24/07/12 14:10, Marco Beri wrote:
2012/7/24 Lorenzo Sutton >


>>> "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 Thread 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\dex>python -c "print 'hello'; print 'world'" >
test

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

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

C:\Documents and Settings\dex>python
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 Thread 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\dex>python -c "print 'hello'; print 
'world'" >

test

C:\Documents and Settings\dex>python -c "print list(open('test', 
'r'))"

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

C:\Documents and Settings\dex>python -c "print list(open('test', 
'rU'))"

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

C:\Documents and Settings\dex>python
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 Thread 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 Thread 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


[Python] pdf-quench

2012-07-24 Thread Federico Bruni
Ciao a tutti

mi sono imbattuto nel problema descritto qui:

http://code.google.com/p/pdf-quench/issues/detail?id=2

Chi ha aperto il bug ha proposto anche una soluzione.
Fino a commentare la linea ci arrivo.
Ma le linee da aggiungere, prese da un altro progetto "pyimpress", non
so dove metterle.

Qualcuno mi può dare una dritta?
I sorgenti li prendete con Mercurial:

hg clone https://code.google.com/p/pdf-quench/

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


Re: [Python] pdf-quench

2012-07-24 Thread Andrea Francia
2012/7/24 Federico Bruni 

> Ciao a tutti
>
> mi sono imbattuto nel problema descritto qui:
>
> http://code.google.com/p/pdf-quench/issues/detail?id=2
>
> Chi ha aperto il bug ha proposto anche una soluzione.
> Fino a commentare la linea ci arrivo.
> Ma le linee da aggiungere, prese da un altro progetto "pyimpress", non
> so dove metterle.
>

Leggendo il commento sulla pagina che hai fornito sembra che tu debba
solamente metterle al posto della linea cancellata, infatti la persona che
ha suggerito la correzione ha anche aggiunto le linee di glue code
all'inizio::

  ww, wh = w, h
  pw, ph = page_width, page_height
  page = self.__current_page

e alla fine:

  background = pixbuf

Hai già provato a farlo? Se sì posta l'eventuale errore.

Ciao
-- 
Andrea Francia http://andreafrancia.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] pdf-quench

2012-07-24 Thread Federico Bruni
Il 24 luglio 2012 16:15, Andrea Francia  ha scritto:
> Leggendo il commento sulla pagina che hai fornito sembra che tu debba
> solamente metterle al posto della linea cancellata, infatti la persona che
> ha suggerito la correzione ha anche aggiunto le linee di glue code
> all'inizio::
>
>   ww, wh = w, h
>   pw, ph = page_width, page_height
>   page = self.__current_page
>
> e alla fine:
>
>   background = pixbuf
>
> Hai già provato a farlo? Se sì posta l'eventuale errore.

Avevo copiato lo snippet da github pensando fosse lo stesso...
Ora funziona.

Anche se pdf-quench ha lo stesso problema di pdf-shuffler e briss:
la parte eliminata non si vede sul monitor ma, se si stampa il file,
"ricompare".

L'ho segnalato poco fa sulla lista Debian italia (ma non c'è ancora il
link negli archivi).
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] ctypes puntatore ad un elemento di un array

2012-07-24 Thread Pietro
Ciao a tutti,

ho una struct line_pnts che è così definita:

http://grass.osgeo.org/programming7/dig__structs_8h_source.html#l01654

è possibile avere il puntatore all'i-esimo elemento usando ctypes?

Ho definito una classe Line, che inserisce dei punti nella struct:

>>> line = Line([(0, 0), (1, 1), (2, 0), (1, -1)])
>>> type(line.c_points) # l'attributo c_points è una struct di tipo: line_pnts
grass.lib.vector.struct_line_pnts
>>> line.c_points.x[3] # controllo che i punti siano stati inseriti nella struct
1.0
>>> line.c_points.y[3] # controllo che i punti siano stati inseriti nella struct
-1.0
>>> type(line.c_points.y[3])
float
>>> type(line.c_points.y)
grass.lib.ctypes_preamble.LP_c_double
>>> ctypes.pointer(line.c_points.y[3]) # se provo ad avere il pointer mi 
>>> solleva il seguente errore:
...
*** TypeError: _type_ must have storage info

è possibile e se si come ottenere un pointer al elemento i-esimo di un
array? In questo caso come dovrei fare?

Grazie per l'aiuto.

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