b
उपसर्ग एक प्रतीक bytes
स्ट्रिंग शाब्दिक ।
यदि आप इसे पायथन 3 स्रोत कोड में उपयोग करते देखते हैं, तो अभिव्यक्ति एक bytes
ऑब्जेक्ट बनाता है , न कि एक यूनिकोड str
ऑब्जेक्ट । यदि आप इसे अपने पायथन शेल में या सूची के भाग के रूप में, तानाशाह या अन्य कंटेनर सामग्री में गूँजते हुए देखते हैं, तो आप bytes
इस अंकन का उपयोग करते हुए एक वस्तु को देखते हैं ।
bytes
ऑब्जेक्ट में मूल रूप से 0-255 की सीमा में पूर्णांक का एक अनुक्रम होता है, लेकिन जब प्रतिनिधित्व किया जाता है, तो पायथन इन बाइट्स को ASCII कोडपॉइंट्स के रूप में प्रदर्शित करता है ताकि उनकी सामग्री को पढ़ना आसान हो सके। बाहर किसी भी बाइट्स प्रिंट करने योग्य ASCII वर्ण की सीमा से बच दृश्यों (जैसे के रूप में दिखाया जाता है \n
, \x82
, आदि)। इसके विपरीत, आप बाइट मान को परिभाषित करने के लिए ASCII वर्ण और एस्केप अनुक्रम दोनों का उपयोग कर सकते हैं; ASCII मूल्यों के लिए उनके संख्यात्मक मान का उपयोग किया जाता है (जैसे b'A'
==)b'\x41'
)
क्योंकि किसी bytes
ऑब्जेक्ट में पूर्णांकों का अनुक्रम होता है, तो आप bytes
0-255 रेंज में मानों के साथ पूर्णांक के किसी अन्य अनुक्रम से किसी ऑब्जेक्ट का निर्माण कर सकते हैं , जैसे कि सूची:
bytes([72, 101, 108, 108, 111])
और अनुक्रमण आपको पूर्णांक वापस देता है (लेकिन स्लाइसिंग एक नया bytes
मान पैदा करता है ; उपरोक्त उदाहरण के लिए;value[0]
आप देता है 72
, लेकिन value[:1]
है b'H'
के रूप में 72 बड़े अक्षर के लिए ASCII कोड बिंदु है एच )।
bytes
मॉडल बाइनरी डेटा , सहित एन्कोडेड पाठ । यदि आपके bytes
मान में पाठ है, तो आपको सही कोडेक का उपयोग करके, पहले इसे डिकोड करना होगा। यदि डेटा को UTF-8 के रूप में एन्कोड किया गया है, उदाहरण के लिए, आप इसके साथ एक यूनिकोड str
मान प्राप्त कर सकते हैं :
strvalue = bytesvalue.decode('utf-8')
इसके विपरीत, एक str
वस्तु में पाठ से जाने के लिए bytes
आपको सांकेतिक शब्दों में बदलना चाहिए । आपको उपयोग करने के लिए एन्कोडिंग पर निर्णय लेने की आवश्यकता है; डिफ़ॉल्ट UTF-8 का उपयोग करना है, लेकिन आपको जो उपयोग करने की आवश्यकता होगी वह आपके उपयोग के मामले पर अत्यधिक निर्भर है:
bytesvalue = strvalue.encode('utf-8')
आप कंस्ट्रक्टर का भी उपयोग कर सकते हैं, bytes(strvalue, encoding)
ऐसा ही करने के लिए।
डिकोडिंग और एन्कोडिंग दोनों तरीके यह निर्दिष्ट करने के लिए एक अतिरिक्त तर्क लेते हैं कि त्रुटियों को कैसे नियंत्रित किया जाना चाहिए ।
पायथन 2, संस्करण 2.6 और 2.7 भी b'..'
स्ट्रिंग शाब्दिक सिंटैक्स का उपयोग करके स्ट्रिंग शाब्दिक बनाने का समर्थन करते हैं , पायथन 2 और 3 दोनों पर काम करने वाले कोड को कम करने के लिए।
bytes
ऑब्जेक्ट अपरिवर्तनीय हैं, जैसे str
स्ट्रिंग्स हैं। एक bytearray()
वस्तु का उपयोग करें यदि आपको एक पारस्परिक बाइट्स मान की आवश्यकता है।