Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

bzip2 संपीड़न के लिए पायथन समर्थन (bz2)

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'

  1. बेस 64 डेटा एन्कोडिंग पायथन का उपयोग कर रहा है

    बेस 64 मॉड्यूल में फ़ंक्शन बाइनरी डेटा को प्लेनटेक्स्ट प्रोटोकॉल का उपयोग करके ट्रांसमिशन के लिए उपयुक्त ASCII के सबसेट में अनुवाद करते हैं। एन्कोडिंग और डिकोडिंग फ़ंक्शन RFC 3548 में विनिर्देशों को लागू करते हैं, जो बेस16, बेस32, और बेस64 एल्गोरिदम को परिभाषित करता है, और वास्तविक मानक Ascii85 और

  1. पीसी के लिए शीर्ष 6 फ़ाइल स्थानांतरण ऐप्स

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

  1. विंडोज़ के लिए 15 सर्वश्रेष्ठ फ़ाइल संपीड़न उपकरण

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