GZip एप्लिकेशन का उपयोग फाइलों के संपीड़न और डीकंप्रेसन के लिए किया जाता है। यह जीएनयू परियोजना का एक हिस्सा है। पायथन का gzip मॉड्यूल GZip एप्लिकेशन का इंटरफ़ेस है। gzip डेटा कम्प्रेशन एल्गोरिथम स्वयं zlib मॉड्यूल पर आधारित है।
Gzip मॉड्यूल में इसकी विधियों के साथ GzipFile वर्ग की परिभाषा शामिल है। इसमें सुविधा फ़ंक्शन ओपन (), कंप्रेस () और डीकंप्रेस () भी शामिल है।
उपरोक्त कार्यों का उपयोग करके संपीड़न और डीकंप्रेसन प्राप्त करने का सबसे आसान तरीका है।
खुला ()
यह फ़ंक्शन बाइनरी या टेक्स्ट मोड में एक gzip-संपीड़ित फ़ाइल खोलता है और ऑब्जेक्ट जैसी फ़ाइल देता है, जो भौतिक फ़ाइल, एक स्ट्रिंग या बाइट ऑब्जेक्ट हो सकती है। डिफ़ॉल्ट रूप से, फ़ाइल 'आरबी' मोड में खोली जाती है यानी बाइनरी डेटा पढ़ना, हालांकि, इस फ़ंक्शन के मोड पैरामीटर नीचे सूचीबद्ध अन्य मोड ले सकते हैं।
binary mode: 'r', 'rb', 'a', 'ab', 'w', 'wb', 'x', 'xb' text mode : 'rt', 'at', 'wt', or 'xt'
यह फ़ंक्शन संपीड़न स्तर को भी परिभाषित करता है जिसका स्वीकार्य मान 0 से 9 के बीच है। जब फ़ाइल टेक्स्ट मोड में खोली जाती है, तो GzipFile ऑब्जेक्ट TextIOWrapper ऑब्जेक्ट में लपेटा जाता है।
संपीड़ित करें()
यह फ़ंक्शन तर्क के रूप में दिए गए डेटा पर संपीड़न लागू करता है और संपीड़ित बाइट ऑब्जेक्ट देता है। डिफ़ॉल्ट रूप से संपीड़न स्तर 9 है।
डीकंप्रेस()
यह फ़ंक्शन बाइट ऑब्जेक्ट को डीकंप्रेस करता है और असम्पीडित डेटा देता है।
निम्नलिखित उदाहरण में संपीड़ित डेटा लिखकर एक gzip फ़ाइल बनाता है।
>>> import gzip >>> data = b'Python - Batteries included' >>> with gzip.open("test.txt.gz", "wb") as f: f.write(data)
यह वर्तमान निर्देशिका में "test.txt.gz" फ़ाइल बनाएगा। इस gzip संग्रह में "test.txt" है जिसे आप किसी भी अनज़िपिंग उपयोगिता का उपयोग करके सत्यापित कर सकते हैं।
इस संपीड़ित फ़ाइल को प्रोग्रामेटिक रूप से पढ़ने के लिए
>>> with gzip.open("test.txt.gz", "rb") as f: data = f.read() >>> data b'Python - Batteries included'के रूप में
किसी मौजूदा फ़ाइल को एक gzip संग्रह में संपीड़ित करने के लिए, उसमें पाठ पढ़ें और इसे एक बायटेरे में परिवर्तित करें। यह बायटियर ऑब्जेक्ट तब एक gzip फ़ाइल में लिखा जाता है। नीचे दिए गए उदाहरण में, 'zen.txt' फ़ाइल को वर्तमान निर्देशिका में मौजूद माना जाता है।
fp = open("zen.txt","rb") >>> data = fp.read() >>> bindata = bytearray(data) >>> with gzip.open("zen.txt.gz", "wb") as f: f.write(bindata)
असंपीड़ित फ़ाइल को gzip संग्रह से पुनर्प्राप्त करने के लिए
>>> fp = open("zen1.txt", "wb") >>> with gzip.open("zen.txt.gz", "rb") as f: bindata = f.read() >>> fp.write(bindata) >>> fp.close()
उपरोक्त कोड वर्तमान निर्देशिका में 'zen1.txt' बनाएगा जिसमें 'zen.txt' के समान डेटा होगा
इन सुविधा कार्यों के अलावा, gzip मॉड्यूल में GzipFile वर्ग भी है जो सेक () और डीकंप्रेस () विधियों को परिभाषित करता है। इस वर्ग का निर्माता फ़ाइल, मोड और संपीड़न-स्तर के तर्कों को ठीक उसी अर्थ के साथ लेता है जैसे ऊपर दिया गया है।
जब मोड पैरामीटर को 'w' या 'wb' या 'wt' के रूप में दिया जाता है, तो GipFile ऑब्जेक्ट दिए गए डेटा को संपीड़ित करने और gzip फ़ाइल में लिखने के लिए लिखने() विधि प्रदान करेगा।
>>> f = gzip.GzipFile("testnew.txt.gz","wb") >>> data = b'Python - Batteries included' >>> f.write(data) >>> f.close()
यह एक testnew.txt.gz फ़ाइल बनाएगा। आप यह देखने के लिए किसी भी उपयोगिता का उपयोग करके इसे खोल सकते हैं कि इसमें 'पायथन - बैटरी शामिल' टेक्स्ट के साथ testnew.txt है।
GzipFile ऑब्जेक्ट का उपयोग करके gzip फ़ाइल को असम्पीडित करने के लिए, इसे 'rb' मान से मोड पैरामीटर के साथ बनाएं और असम्पीडित डेटा को read() विधि द्वारा पढ़ें
>>> f = gzip.GzipFile("testnew.txt.gz","rb") >>> data = f.read() >>> data b'Python - Batteries included'
इस लेख में हमने सीखा कि कैसे पायथन के gzip मॉड्यूल द्वारा gzip लाइब्रेरी को कार्यान्वित किया जा सकता है।