2013-03-01 34 views
8

Nói rằng tôi có một tập hợp các chuỗi như sau:Parse Python String cho đơn vị

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

Có một gói Python mà sẽ đọc chuỗi như vậy, chuyển đổi chúng sang SI, và trả kết quả trong một easily- có thể sử dụng được? Ví dụ:

>>> 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 là tốt, nhưng tôi không nghĩ rằng nó sẽ phân tích cú pháp các đơn vị trong chuỗi cho bạn. – mgilson

+2

Đây là một số khác: https://pint.readthedocs.org/en/latest/ – isedev

+0

có thể trùng lặp của [Thư viện Python để chuyển đổi giữa các tiền tố đơn vị SI] (http://stackoverflow.com/questions/10969759/python-library- to-convert-between-si-unit-prefixes) –

Trả lời

1

Có phần mở rộng cho ipython có thể thực hiện ít nhất một phần nội dung bạn muốn không. Nó được gọi là ipython-physics

Nó lưu trữ giá trị và đơn vị và cho phép (ít nhất) một số toán cơ bản. Tôi chưa bao giờ sử dụng bản thân mình, vì vậy tôi không biết việc sử dụng dễ dàng như thế nào trong tập lệnh python

+0

Tôi không muốn sử dụng ipython, nhưng cảm ơn bạn. – Richard

+0

Tôi hiểu. Tôi chỉ đưa ra một cái nhìn tại nguồn, và có vẻ như với tôi rằng Ipython chỉ nhập vào khi tải/dỡ bỏ phần mở rộng, không nằm trong phần thân của phần mở rộng. Nhưng tôi đoán rằng chiến thắng 'pint', nếu không phải cho tên và hình ảnh –

1

Gần đây, pint là một nơi tốt để bắt đầu cho hầu hết các trường hợp này.

Các vấn đề liên quan