Python - Convert currency code to its sign
Using the locale module:
import locale
locales=('en_AU.utf8', 'en_BW.utf8', 'en_CA.utf8',
'en_DK.utf8', 'en_GB.utf8', 'en_HK.utf8', 'en_IE.utf8', 'en_IN', 'en_NG',
'en_PH.utf8', 'en_US.utf8', 'en_ZA.utf8',
'en_ZW.utf8', 'ja_JP.utf8')
for l in locales:
locale.setlocale(locale.LC_ALL, l)
conv=locale.localeconv()
print('{ics} ==> {s}'.format(ics=conv['int_curr_symbol'],
s=conv['currency_symbol']))
yields:
AUD ==> $
BWP ==> Pu
CAD ==> $
DKK ==> kr
GBP ==> £
HKD ==> HK$
EUR ==> €
INR ==> ₨
NGN ==> ₦
PHP ==> Php
USD ==> $
ZAR ==> R
ZWD ==> Z$
JPY ==> ¥
Note you need the locale information installed on your machine. On Ubuntu, this means having the right language-pack-*
packages installed.
On *nix systems, you can find the list of known locales (e.g. en_GB.utf8
) with
locale -a
I don't know of a way to obtain this list from within Python (without using subprocess
).
Forex-python package will convert Currency code to its sign.
>>> from forex_python.converter import CurrencyCodes
>>> c = CurrencyCodes()
>>> print c.get_symbol('GBP')
£
And you can convert amount from one currency to other.
>>> c= CurrencyRates()
>>> c.convert('USD', 'INR', 10)
674.73
give it a try
How about Babel?
from babel import numbers
print numbers.format_currency(1500, 'USD', locale='en') # => $1,500.00
print numbers.format_currency(1500, 'GBP', locale='fr_FR') # => 1 500,00 £UK