ज़्लिब मॉड्यूल ज़ीलिब कम्प्रेशन लाइब्रेरी (https://www.zlib.net) के पायथन के कार्यान्वयन को प्रदान करता है जो जीएनयू प्रोजेक्ट का एक हिस्सा है।
यह आलेख zlib मॉड्यूल में परिभाषित महत्वपूर्ण कार्यों पर चर्चा करता है।
संपीड़ित करें()
यह फ़ंक्शन डीकंप्रेस () फ़ंक्शन के साथ इस मॉड्यूल का प्राथमिक इंटरफ़ेस है। यह फ़ंक्शन पैरामीटर के रूप में दिए गए डेटा को संपीड़ित करके बाइट ऑब्जेक्ट देता है। फ़ंक्शन का एक और पैरामीटर है जिसे स्तर कहा जाता है जो संपीड़न की सीमा को नियंत्रित करता है। यह 0 से 9 के बीच एक पूर्णांक है। निम्नतम मान 0 का अर्थ है कोई संपीड़न नहीं और 9 सर्वोत्तम संपीड़न के लिए है। संपीड़न का स्तर जितना अधिक होगा, संपीड़ित बाइट ऑब्जेक्ट की लंबाई उतनी ही अधिक होगी।
डीकंप्रेस()
यह फ़ंक्शन कंप्रेस () फ़ंक्शन के विपरीत करता है। यह असम्पीडित डेटा को पुनः प्राप्त करता है। इस फ़ंक्शन में एक वैकल्पिक पैरामीटर हो सकता है जिसे wbits कहा जाता है जो इतिहास बफर के आकार और हेडर और ट्रेलर प्रारूप की प्रकृति को नियंत्रित करता है।
निम्नलिखित कथन एक स्ट्रिंग ऑब्जेक्ट को कंप्रेस () फ़ंक्शन की सहायता से संपीड़ित करता है
>>> import zlib >>> c = zlib.compress(b'hello python') >>> c b'x\x9c\xcbH\xcd\xc9\xc9W(\xa8,\xc9\xc8\xcf\x03\x00\x1e\xf0\x04\xd7'
जबकि डीकंप्रेस () फ़ंक्शन मूल पायथन स्ट्रिंग को पुनः प्राप्त करता है।
>>> zlib.decompress(c) b'hello python'
मॉड्यूल में संपीड़न और डीकंप्रेसन ऑब्जेक्ट्स के दो संबंधित वर्ग की परिभाषाएं शामिल हैं।
compressobj () - यह कंस्ट्रक्टर डेटा स्ट्रीम को कंप्रेस करने के लिए उपयोग की जाने वाली कंप्रेशन ऑब्जेक्ट देता है। इस वस्तु की दो महत्वपूर्ण विधियाँ हैं
संपीड़ित करें () - कंप्रेस्ड बाइट ऑब्जेक्ट लौटाता है।
फ्लश () - चूंकि संपीड़न वस्तु धाराओं से संबंधित है, कुछ संपीड़ित डेटा बफर में शेष हो सकता है। यह विधि बफ़र को खाली कर देती है।
निम्नलिखित उदाहरण कम्प्रेशन ऑब्जेक्ट को सेट करता है और कंप्रेस () विधि के रिटर्न वैल्यू में फ्लश किए गए डेटा को जोड़कर एक कंप्रेस्ड डेटा ऑब्जेक्ट का निर्माण करता है।
>>> s1 = b'hello python' >>> c = zlib.compressobj() >>> s2 = c.compress(s1) >>> s2 = s2+c.flush() >>> s2 b'x\x9c\xcbH\xcd\xc9\xc9W(\xa8,\xc9\xc8\xcf\x03\x00\x1e\xf0\x04\xd7'
decompressobj() - यह डीकंप्रेसन ऑब्जेक्ट के लिए कंस्ट्रक्टर के रूप में कार्य करता है जो स्ट्रीम से बड़े डेटा को डीकंप्रेस करता है। यह ऑब्जेक्ट निम्न विधियों को प्रदान करता है
डीकंप्रेस() - यह विधि असम्पीडित डेटा लौटाती है
फ्लश () - यह विधि बफर को खाली कर देती है।
निम्नलिखित कोड पिछले उदाहरण में बनाए गए बाइट ऑब्जेक्ट से असम्पीडित डेटा पुनर्प्राप्त करता है
>>> d = zlib.decompressobj() >>> x = d.decompress(s2) >>> x = x+d.flush() >>> x b'hello python'
zlib मॉड्यूल में दो स्थिरांक परिभाषित हैं जो उपयोग में zlib पुस्तकालय की संस्करण जानकारी प्रदान करते हैं।
>>> zlib.ZLIB_VERSION '1.2.11' >>> zlib.ZLIB_RUNTIME_VERSION '1.2.11'