2008-08-07 25 views
30

में बाइट्स को फ़्लोटिंग प्वाइंट नंबरों में कनवर्ट करें मेरे पास एक बाइनरी फ़ाइल है जिसे मुझे पार्स करना है और मैं पायथन का उपयोग कर रहा हूं। क्या 4 बाइट्स लेने और इसे एक सटीक फ्लोटिंग पॉइंट नंबर में बदलने का कोई तरीका है?पाइथन

उत्तर

50
>>> import struct 
>>> struct.pack('f', 3.141592654) 
b'\xdb\[email protected]' 
>>> struct.unpack('f', b'\xdb\[email protected]') 
(3.1415927410125732,) 
>>> struct.pack('4f', 1.0, 2.0, 3.0, 4.0) 
'\x00\x00\x80?\x00\x00\[email protected]\x00\[email protected]@\x00\x00\[email protected]' 
+2

यह केवल 4 या 8 बाइट फ्लोट के लिए काम करता है। 10-बाइट फ्लोट के बारे में क्या? – dplass

+0

मुझे कहीं और संदर्भ मिला, धन्यवाद। – dplass

+0

मैं @dplass से सहमत हूं, अन्य फ्लोट्स के बारे में क्या। और, इस स्ट्रिंग के अंत में एक अल्पविराम क्यों है? – Startec

13

आप struct पैकेज चाहते हैं।

+15

प्रदर्शन कोड का थोड़ा सा जोड़ें और मैं ऊपर उठ जाऊंगा। –

+1

आप जीतने वाले वोट प्राप्त कर सकते थे, लेकिन उदाहरण कोड नहीं जोड़ा ... – Mayhem