bzip2 फाइलों के कंप्रेशन और डीकंप्रेसन के लिए एक ओपन सोर्स एल्गोरिथम है। पायथन का bz2 मॉड्यूल प्रोग्राम के रूप में bzip2 एल्गोरिथम को लागू करने के लिए कार्यक्षमता प्रदान करता है।
ओपन () फ़ंक्शन इस मॉड्यूल का प्राथमिक इंटरफ़ेस है।
खोलें ()
यह फ़ंक्शन एक bzip2 संपीड़ित फ़ाइल खोलता है और एक फ़ाइल ऑब्जेक्ट देता है। फ़ाइल को पढ़ने/लिखने की अनुमति के साथ बाइनरी/टेक्स्ट मोड के रूप में खोला जा सकता है। फ़ंक्शन 1 से 9 के बीच संपीड़न स्तर तर्क के आधार पर संपीड़न करता है।
लिखें ()
जब फ़ाइल 'w' या 'wb' मोड में खोली जाती है, तो यह फ़ंक्शन फ़ाइल ऑब्जेक्ट के लिए उपलब्ध होता है। बाइनरी मोड में, यह फ़ाइल में संपीड़ित बाइनरी डेटा लिखता है। सामान्य टेक्स्ट मोड में, फ़ाइल ऑब्जेक्ट को एन्कोडिंग करने के लिए TetIOWrapper ऑब्जेक्ट में लपेटा जाता है।
पढ़ें () - रीड मोड में खोले जाने पर, यह फ़ंक्शन इसे पढ़ता है और असम्पीडित डेटा लौटाता है।
निम्नलिखित कोड संपीड़ित डेटा को bzip2 फ़ाइल में लिखता है।
>>> f = bz2.open("test.bz2", "wb") >>> data = b'Welcome to TutorialsPoint' >>> f.write(data) >>> f.close()
यह वर्तमान निर्देशिका में test.bz2 फ़ाइल बनाएगा। कोई भी अनजिपिंग टूल इसमें एक 'टेस्ट' फाइल दिखाएगा। इस test.bz2 फ़ाइल से असम्पीडित डेटा को पढ़ने के लिए निम्नलिखित कोड का उपयोग करें।
>>> f = bz2.open("test.bz2", "rb") >>> data=f.read() >>> data b'Welcome to TutorialsPoint'
bz2 मॉड्यूल BZ2File वर्ग को भी परिभाषित करता है। इसका ऑब्जेक्ट कंस्ट्रक्टर के मोड पैरामीटर के आधार पर एक कंप्रेसर और डीकंप्रेसर के रूप में कार्य करता है।
BZ2File()
यह कंस्ट्रक्टर है। ओपन () फ़ंक्शन के रूप में, फ़ाइल और मोड पैरामीटर की आवश्यकता होती है। डिफ़ॉल्ट रूप से संपीड़न स्तर 9 है और 1 से 9 के बीच हो सकता है।
BZ2Compressor()
यह फ़ंक्शन इंक्रीमेंटल कंप्रेसर क्लास का ऑब्जेक्ट देता है। इस वर्ग में प्रत्येक कॉल टू कंप्रेस () विधि संपीड़ित डेटा का एक हिस्सा लौटाती है। कई हिस्सों को एक साथ जोड़ा जा सकता है और अंत में bzip2 संपीड़न फ़ाइल में लिखा जा सकता है।
फ्लश ()
यह विधि बफ़र को खाली कर देती है और इसमें डेटा का हिस्सा कंप्रेस्ड ऑब्जेक्ट में जोड़ने के लिए लौटाती है।
BZ2Decompressor()
यह फ़ंक्शन वृद्धिशील डीकंप्रेसर की वस्तु देता है। असंपीड़ित डेटा के अलग-अलग झंकार, फ़्लूड किए गए डेटा के साथ मिलकर असम्पीडित डेटा बनाते हैं।
निम्नलिखित उदाहरण पहले सूची ऑब्जेक्ट में प्रत्येक आईईएम को संपीड़ित करता है और फ़ाइल में संयोजित बाइट ऑब्जेक्ट लिखता है। डेटा BZ2Decompressor ऑब्जेक्ट द्वारा पुनर्प्राप्त किया जाता है।
>>> data = [b'Hello World', b'How are you?', b'welcome to Python'] >>> obj = bz2.BZ2Compressor() >>> f = bz2.open("test.bz2", "wb") >>> d1 = obj.compress(data[0]) >>> d2 = obj.compress(data[1]) >>> d3 = obj.compress(data[2]) >>> d4 = obj.flush() >>> d1,d2,d3,d4 (b'', b'', b'', b'BZh91AY&SYS\x9a~\x99\x00\x00\x03\x1f\x80@\x00\x00\x00\x80@@\x80.G\x96\xa0 \x00!\xa8\xd0\x06\x9a6\x90\xa6LL\x83#\x18\x1d\x83\xee^]\x1e|\xa9\xddgu\x15G/\x1a\x8c\xd1\x90\x14\x8f\x8b\xb9"\x9c(H)\xcd?L\x80') >>> compressedobj=d1+d2+d3+d4 >>> f.write(compressedobj) >>> f.close() >>> obj=bz2.BZ2DeCompressor() >>> f=bz2.open("test.bz2", "rb") >>> data=f.read() >>> obj.decompress(data) b'Hello WorldHow are you?welcome to Python'