Re: question formatage de printf - python

Top Page

Reply to this message
Author: Frédéric
Date:  
To: guilde
Old-Topics: Re: question formatage de printf
Subject: Re: question formatage de printf - python
Le lundi 28 mars 2011, Patrice Karatchentzeff a écrit :

> Sinon, on doit pouvoir s'amuser avec les locales mais j'ai un peu la
> flemme de chercher...


En python, ça donne ceci :

$ ipython
Python 2.5.2 (r252:60911, Jan 24 2010, 14:53:14)
Type "copyright", "credits" or "license" for more information.

IPython 0.8.4 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object'. ?object also works, ?? prints more.


In [1]: import locale

In [2]: locale.localeconv()
Out[2]:
{'currency_symbol': '',
'decimal_point': '.',
'frac_digits': 127,
'grouping': [],
'int_curr_symbol': '',
'int_frac_digits': 127,
'mon_decimal_point': '',
'mon_grouping': [],
'mon_thousands_sep': '',
'n_cs_precedes': 127,
'n_sep_by_space': 127,
'n_sign_posn': 127,
'negative_sign': '',
'p_cs_precedes': 127,
'p_sep_by_space': 127,
'p_sign_posn': 127,
'positive_sign': '',
'thousands_sep': ''}

In [3]: locale.format("%d", 1325343465, grouping=True)
Out[3]: '1325343465'

In [4]: locale.format("%f", 1325343465.463423, grouping=True)
Out[4]: '1325343465.463423'

In [5]: locale.setlocale(locale.LC_NUMERIC, 'fr_FR')
Out[5]: 'fr_FR'

In [6]: locale.localeconv()
Out[6]:
{'currency_symbol': '',
'decimal_point': ',',
'frac_digits': 127,
'grouping': [3, 3, 0],
'int_curr_symbol': '',
'int_frac_digits': 127,
'mon_decimal_point': '',
'mon_grouping': [],
'mon_thousands_sep': '',
'n_cs_precedes': 127,
'n_sep_by_space': 127,
'n_sign_posn': 127,
'negative_sign': '',
'p_cs_precedes': 127,
'p_sep_by_space': 127,
'p_sign_posn': 127,
'positive_sign': '',
'thousands_sep': ' '}

In [7]: locale.format("%d", 1325343465, grouping=True)
Out[7]: '1 325 343 465'

In [8]: locale.format("%f", 1325343465.463423, grouping=True)
Out[8]: '1325343465,463423'

Curieusement, en float, il n'y a pas le séparateur...

Un lien utile :

http://stackoverflow.com/questions/4082645/using-python-2-xs-locale-module-to-format-numbers-and-currency

--
Frédéric