2015-06-06 9 views
15

में स्ट्रिंग का आकार प्राप्त करें मेरे पास एक स्ट्रिंग है जिसे नेटवर्क पर भेजा जाना है। मुझे कुल बाइट्स की जांच करने की आवश्यकता है।पायथन: बाइट्स

sys.getsizeof(string_name) अतिरिक्त बाइट्स देता है। उदाहरण के लिए sys.getsizeof("a") 22 लौटाता है, जबकि एक वर्ण केवल पायथन में 1 बाइट में दर्शाया जाता है। क्या यह खोजने के लिए कोई और तरीका है?

+0

पाइथन का कौन सा संस्करण आप उपयोग कर रहे हैं? – squiguy

+3

ऐसा इसलिए है क्योंकि स्ट्रिंग "ए" पाइथन में एक ऑब्जेक्ट है जिसमें अतिरिक्त जानकारी होती है। – Kris

+0

@ कुछ डेवलपर केवल पूर्ण ऑब्जेक्ट की अतिरिक्त जानकारी के बिना स्ट्रिंग के लिए बाइट्स प्राप्त करने का कोई तरीका है? –

उत्तर

25

यदि आप एक स्ट्रिंग में बाइट्स की संख्या चाहते हैं, तो इस फ़ंक्शन को आपके लिए यह ठोस रूप से करना चाहिए। क्योंकि एक स्ट्रिंग में समझाया तथ्य यह है कि तार अजगर में वास्तविक वस्तुओं रहे हैं की वजह से अन्य जानकारी का एक समूह है

def utf8len(s): 
    return len(s.encode('utf-8')) 

कारण तुम अजीब संख्या मिल गया है।

यह दिलचस्प है क्योंकि यदि आप 'utf-8' में स्ट्रिंग को एन्कोड करने के मेरे समाधान को देखते हैं, तो 'ऑब्जेक्ट' (जो एक स्ट्रिंग है) पर 'एन्कोड' विधि है। खैर, इसे कहीं और संग्रहीत करने की जरूरत है? इसलिए, सामान्य बाइट गिनती से अधिक। इसमें कुछ अन्य लोगों के साथ उस विधि सहित :)।

+0

यह काम करता है: ') बहुत बहुत धन्यवाद –

+0

कोई चिंता नहीं। कभी-कभी सरल उत्तर प्रतीत होता है कि अजीब समस्याएं हाहा में हैं। – Kris

+1

कुछ इनपुट पर कारण त्रुटियों को एन्कोड नहीं करेगा? –

संबंधित मुद्दे