[Python] A proposito di replace

2010-04-21 Per discussione Vittorio Zuccala'
Buongiorno a tutti,
in lista è girato un post articolato sul replace.
Vorrei fare qualcosa di simile ma leggermente più articolato e vi chiedo
aiuto.

Ecco il problema: un programma di statistica genera un CSV con diverse
colonne.
Io vado a parsare il CSV e recupero i campi tra i quali degli importi numeri
come i seguenti:

68894.09
101106.63

Quello che vorrei fare è far diventare questi numeri (anche in formato
stringa) del tipo:

€ 68.894
€101.106

e quindi il concetto è: quando trovo un punto all'interno di uno dei campi
CSV (quindi ciò che il programma identifica come valuta), fai sparire quello
che c'è dopo il punto mentre le cifre prima del punto raggruppale per tre e
inserisci un puntino in mezzo.
Con il replace potrei fare qualcosa tipo:

stringa.replace('.$','')

Il comando è da affinare con la lettura di qualche tutotial ma
concettualmente ci dovremmo essere.
Quello che non riesco a fare è dirgli la seconda parte ovvero raggruppa le
cifre prima del punto in gruppi di tre e mettici un puntino in mezzo.
Idee in merito?
Grazie per l'aiuto
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] A proposito di replace

2010-04-21 Per discussione Marco Mariani
On 04/21/2010 11:57 AM, Vittorio Zuccala' wrote:

 Quello che non riesco a fare è dirgli la seconda parte ovvero
 raggruppa le cifre prima del punto in gruppi di tre e mettici un
 puntino in mezzo.
 Idee in merito?

http://code.activestate.com/recipes/498181/


-- 
This e-mail (and any attachment(s)) is strictly confidential and for use only 
by intended recipient(s). Any use, distribution, reproduction or disclosure by 
any other person is strictly prohibited. The content of this e-mail does not 
constitute a commitment by the Company except where provided for in a written 
agreement between this e-mail addressee and the Company. If you are not an 
intended recipient(s), please notify the sender promptly and destroy this 
message and its attachments without reading or saving it in any manner. Any non 
authorized use of the content of this message constitutes a violation of the 
obligation to abstain from learning of the correspondence among other subjects, 
except for more serious offence, and exposes the person responsible to the 
relevant consequences.

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


Re: [Python] A proposito di replace

2010-04-21 Per discussione Simone Federici
s = stringa.replace('.$','')

$%s.%s % (s[:-3], s[-3:])



2010/4/21 Vittorio Zuccala' vittorio.zucc...@gmail.com

 68894.09
 101106.63

 Quello che vorrei fare è far diventare questi numeri (anche in formato
 stringa) del tipo:

 € 68.894
 €101.106

 e quindi il concetto è: quando trovo un punto all'interno di uno dei campi
 CSV (quindi ciò che il programma identifica come valuta), fai sparire quello
 che c'è dopo il punto mentre le cifre prima del punto raggruppale per tre e
 inserisci un puntino in mezzo.

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


Re: [Python] A proposito di replace

2010-04-21 Per discussione Daniele Varrazzo
On Wed, 21 Apr 2010 12:09:06 +0200, Marco Mariani
marco.mari...@prometeia.it wrote:
 On 04/21/2010 11:57 AM, Vittorio Zuccala' wrote:
 
 Quello che non riesco a fare è dirgli la seconda parte ovvero
 raggruppa le cifre prima del punto in gruppi di tre e mettici un
 puntino in mezzo.
 Idee in merito?
 
 http://code.activestate.com/recipes/498181/

Elaborando su questa, che penso sia la risposta giusta, sbagli ad avere
a che fare con stringhe: dopo aver effettuato il parsing del cvs in celle
di testo, trasforma le celle su cui devi lavorare in numeri e poi
costruisci una presentazione su quei numeri: quando sono stringhe non hanno
significato.

Lavorare su stringhe ti potrebbe permettere di mostrare all'utente
qualcosa come € Z.ucc.ala,00 ma probabilmente non gli sarebbe di grande
uso :)

-- 
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] A proposito di replace

2010-04-21 Per discussione Vitto
Porca miseria,
chiedo scusa per la superficialità ma non avevo compreso la potenza
dell'esempio anche perchè, come detto, programmo in python da pochissimo
tempo.
E' bastato aggiungere, nella funzione FormatWithCommas un template
(passatemi il termine anche se non corretto) di questo tipo:

 FormatWithCommas('E.%.0f', -1234567.5678)
'E.-1.234.567'

ed il gioco è fatto.
Grazie Marco e Daniele.
E grazie anche a Simone per il suggerimento alternativo :-)



Il giorno 21 aprile 2010 14.01, Daniele Varrazzo p...@develer.com ha
scritto:

 On Wed, 21 Apr 2010 12:09:06 +0200, Marco Mariani
 marco.mari...@prometeia.it wrote:
  On 04/21/2010 11:57 AM, Vittorio Zuccala' wrote:
 
  Quello che non riesco a fare è dirgli la seconda parte ovvero
  raggruppa le cifre prima del punto in gruppi di tre e mettici un
  puntino in mezzo.
  Idee in merito?
 
  http://code.activestate.com/recipes/498181/

 Elaborando su questa, che penso sia la risposta giusta, sbagli ad avere
 a che fare con stringhe: dopo aver effettuato il parsing del cvs in celle
 di testo, trasforma le celle su cui devi lavorare in numeri e poi
 costruisci una presentazione su quei numeri: quando sono stringhe non hanno
 significato.

 Lavorare su stringhe ti potrebbe permettere di mostrare all'utente
 qualcosa come € Z.ucc.ala,00 ma probabilmente non gli sarebbe di grande
 uso :)

 --
 Daniele Varrazzo - Develer S.r.l.
 http://www.develer.com
 ___
 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] A proposito di replace

2010-04-21 Per discussione Giovanni Porcari

Il giorno 21/apr/2010, alle ore 14.01, Daniele Varrazzo ha scritto:

 On Wed, 21 Apr 2010 12:09:06 +0200, Marco Mariani
 marco.mari...@prometeia.it wrote:
 On 04/21/2010 11:57 AM, Vittorio Zuccala' wrote:
 
 Quello che non riesco a fare è dirgli la seconda parte ovvero
 raggruppa le cifre prima del punto in gruppi di tre e mettici un
 puntino in mezzo.
 Idee in merito?
 
 http://code.activestate.com/recipes/498181/
 
 Elaborando su questa, che penso sia la risposta giusta, sbagli ad avere
 a che fare con stringhe: dopo aver effettuato il parsing del cvs in celle
 di testo, trasforma le celle su cui devi lavorare in numeri e poi
 costruisci una presentazione su quei numeri: quando sono stringhe non hanno
 significato.
 
 Lavorare su stringhe ti potrebbe permettere di mostrare all'utente
 qualcosa come € Z.ucc.ala,00 ma probabilmente non gli sarebbe di grande
 uso :)
 


Io mi trovo bene con Babel ( http://babel.edgewall.org/)
Prova a vedere se ti può essere utile.

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