utilizzando un'espressione regolare sarà più affidabile
import re
decmark_reg = re.compile('(?<=\d),(?=\d)')
ss = 'abc , 2,5 def ,5,88 or (2,5, 8,12, 8945,3)'
print ss
print decmark_reg.sub('.',ss)
risultato
abc , 2,5 def ,5,88 or (2,5, 8,12, 8945,3)
abc , 2.5 def ,5.88 or (2.5, 8.12, 8945.3)
Se si desidera trattare i casi più complessi (i numeri senza cifre prima del punto decimale per exemple) l'espressione regolare I artigianale per rilevare tutti i tipi di numeri nella seguente discussione può essere di tuo interesse:
stackoverflow.com/questions/5917082/regular-expression-to-match-numbers-with-or-without-commas-and-decimals-in-text/5929469
avete controllato: http://pypi.python.org/pypi/Babel/0.9.6 – mouad