2013-03-01 7 views
8

dire che ho un insieme di stringhe come la seguente:Parse Python String per unità

"5 m^2" 
"17 sq feet" 
"3 inches" 
"89 meters" 

C'è un pacchetto di Python, che leggerà queste stringhe, convertirli in SI, e restituire il risultato in un facilmente- forma utilizzabile? Ad esempio:

>>> a=dream_parser.parse("17 sq feet") 
>>> a.quantity 
1.5793517 
>>> a.type 
'area' 
>>> a.unit 
'm^2' 
+0

https://pypi.python.org/pypi/units è buono, ma non credo che analizzerà le unità di una stringa per te. – mgilson

+2

Eccone un altro: https://pint.readthedocs.org/en/latest/ – isedev

+0

possibile duplicato di [libreria Python per convertire tra prefissi unità SI] (http://stackoverflow.com/questions/10969759/python-library- to-convert-between-si-unit-prefixes) –

risposta

1

C'è un'estensione per ipython che può fare almeno una parte di ciò che si desidera. Si chiama ipython-physics

Memorizza valore e unità e consente (almeno) una matematica di base. Non l'ho mai usato da solo, quindi non so quanto sarebbe facile da usare in uno script python

+0

Preferirei non dover usare ipython, ma grazie. – Richard

+0

Capisco. Ho appena dato un'occhiata all'origine, e mi sembra che Ipython entri solo quando si carica/scarica l'estensione, non nel corpo dell'estensione stessa. Ma immagino che la "pinta" vince, se non per il nome e l'immagine –

1

Più recentemente, pint è un buon punto di partenza per la maggior parte di questi.