आप जैसे पाठक MUO का समर्थन करने में मदद करते हैं। जब आप हमारी साइट पर लिंक का उपयोग करके खरीदारी करते हैं, तो हम संबद्ध कमीशन अर्जित कर सकते हैं। और पढ़ें।

Gzip और Zlib एल्गोरिदम का लोकप्रिय रूप से फ़ाइलों को संपीड़ित और विघटित करने के लिए उपयोग किया जाता है। Gzip मुख्य रूप से एकल फ़ाइलों को संपीड़ित करने के लिए उपयोग किया जाता है, जबकि Zlib मुख्य रूप से डेटा स्ट्रीम को संपीड़ित करता है। एल्गोरिदम संपीड़न के लिए डिफ्लेट संपीड़न एल्गोरिदम का उपयोग करते हैं, हालांकि Gzip त्रुटि जांच और फ़ाइल मेटाडेटा सहित अतिरिक्त सुविधाएं प्रदान करता है।

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

गो डेटा को संपीड़ित करने के लिए कार्यक्षमता प्रदान करता है, जिसमें फ़ाइलें भी शामिल हैं संकुचित करें पैकेट।

कंप्रेस पैकेज

संकुचित करें पैकेज के माध्यम से डेटा को कंप्रेस करने का समर्थन करता है सेक/gzip और सेक/zlib संकुल, अन्य कार्यात्मकताओं के बीच।

gzip पैकेज gzip फ़ाइल स्वरूप डेटा को कंप्रेस और डीकंप्रेस करने का समर्थन करता है, जिसमें निर्दिष्ट के अनुसार पढ़ने और लिखने के संचालन शामिल हैं आरएफसी 1952. जब zlib पैकेज zlib प्रारूप में डेटा को कंप्रेस और डीकंप्रेस करने में मदद करता है।

आप आयात कर सकते हैं gzip और zlib से संकुचित करें पैकेज का उपयोग कर रहा है आयात कीवर्ड।

आयात (
"संपीड़ित/gzip"// आयात गज़िप

"संपीड़ित/zlib"// आयात zlib
)

Gzip के साथ फाइलों को कंप्रेस और डीकंप्रेस करना

Gzip एक फ़ाइल स्वरूप है और फ़ाइल संपीड़न और विसंपीड़न के लिए एक सॉफ्टवेयर अनुप्रयोग है। Gzip डेटा को कंप्रेस करने के लिए Lempel-Ziv-Markov चेन एल्गोरिथम (LZ77) का उपयोग करता है, और एल्गोरिथम का उपयोग अक्सर HTML, CSS या JavaScript फ़ाइलों जैसी टेक्स्ट फ़ाइलों को कंप्रेस करने के लिए किया जाता है।

के साथ फाइलों को कंप्रेस करने की प्रक्रिया gzip पैकेज सरल और सहज है। आपको फ़ाइल खोलने, एक gzipped फ़ाइल बनाने, एक gzip लेखक बनाने और मूल कॉपी करने की आवश्यकता होगी फ्लश ऑपरेशन से पहले gzip लेखक को फ़ाइल की सामग्री जो लेखन प्रक्रिया को सुनिश्चित करती है पूरा।

इसे रन करो बैश आदेश यूनिक्स सिस्टम पर आपकी कार्यशील निर्देशिका के टर्मिनल में एक नमूना पाठ फ़ाइल बनाने के लिए और फिर फ़ाइल में पाठ सम्मिलित करें।

// एक टेक्स्ट फ़ाइल बनाता है।
example.txt को स्पर्श करें

// स्ट्रिंग को फ़ाइल में पाइप करता है
गूंज 'हैलो, दुनिया!' > example.txt}

फ़ाइल बनाने और टेक्स्ट डालने के बाद, आप आयात कर सकते हैं gzip, कब, और ओएस संपीड़न ऑपरेशन के लिए पैकेज।

यहां बताया गया है कि आप कैसे उपयोग कर सकते हैं सेक/gzip पाठ फ़ाइल को संपीड़ित करने के लिए पैकेज।

आयात (
"संपीड़ित/gzip"
"आईओ"
"ओएस"
)

समारोहमुख्य() {
// मूल फ़ाइल खोलें
मूल फ़ाइल, त्रुटि: = os. खुला("example.txt")
अगर गलती! = शून्य {
घबड़ाहट(गलत)
}
आस्थगित करें मूल फ़ाइल। बंद करना()

// एक नई gzipped फ़ाइल बनाएँ
gzippedFile, गलती: = os. बनाएं("example.txt.gz")
अगर गलती! = शून्य {
घबड़ाहट(गलत)
}
आस्थगित करें gzippedFile. बंद करना()

// एक नया gzip लेखक बनाएं
gzipWriter := gzip. न्यूराइटर (gzippedFile)
आस्थगित करें gzipWriter. बंद करना()

// मूल फ़ाइल की सामग्री को gzip लेखक में कॉपी करें
_, त्रुटि = io. कॉपी (gzipWriter, ओरिजिनलफाइल)
अगर गलती! = शून्य {
घबड़ाहट(गलत)
}

// सभी डेटा लिखे जाने को सुनिश्चित करने के लिए gzip लेखक को फ़्लश करें
gzipWriter. फ्लश ()
}

खुला का कार्य ओएस पैकेज पाठ फ़ाइल खोलता है, और बंद करना फ़ंक्शन a के साथ फ़ाइल को बंद करता है आस्थगित करें कथन। बनाएं फ़ंक्शन एक gzipped फ़ाइल बनाता है, और न्यूराइटर का कार्य gzip पैकेज टेक्स्ट फ़ाइल की सामग्री को gzip फ़ाइल में लिखता है प्रतिलिपि का कार्य आईओ पैकेट।

लालिमा की विधि gzipWriter ज़िपित फ़ाइल पर सभी डेटा उपलब्ध होने के बाद उदाहरण gzip लेखक को फ़्लश करता है।

आप डिकंप्रेशन प्रक्रिया के माध्यम से gzipped फ़ाइल से मूल फ़ाइल को पुनः प्राप्त कर सकते हैं। फ़ाइल को डीकंप्रेस करने की प्रक्रिया समान है; आप फ़ाइल खोलेंगे और एक gzip फ़ाइल रीडर बनाएंगे, फिर सामग्री को नई फ़ाइल में कॉपी करने से पहले असम्पीडित डेटा को होल्ड करने के लिए एक नई फ़ाइल बनाएँ।

आयात (
"संपीड़ित/gzip"
"आईओ"
"ओएस"
)

समारोहमुख्य() {
// gzipped फ़ाइल खोलें
gzippedFile, गलती: = os. खुला("example.txt.gz")
अगर गलती! = शून्य {
घबड़ाहट(गलत)
}
आस्थगित करें gzippedFile. बंद करना()

// एक नया gzip रीडर बनाएं
gzipReader, गलती: = gzip. न्यूरीडर (gzippedFile)
आस्थगित करें gzipReader. बंद करना()

// असम्पीडित डेटा को होल्ड करने के लिए एक नई फ़ाइल बनाएँ
असम्पीडित फ़ाइल, त्रुटि: = os. बनाएं("example.txt")
अगर गलती! = शून्य {
घबड़ाहट(गलत)
}
आस्थगित करें असम्पीडित फ़ाइल। बंद करना()

// gzip रीडर की सामग्री को नई फ़ाइल में कॉपी करें
_, त्रुटि = io. प्रतिलिपि (असम्पीडितफ़ाइल, gzipReader)
अगर गलती! = शून्य {
घबड़ाहट(गलत)
}
}

खुला का कार्य ओएस पैकेज gzipped फ़ाइल खोलता है, और न्यूरीडर का कार्य gzip पैकेज ज़िप की गई फ़ाइल को पढ़ता है। बनाएं का कार्य ओएस पैकेज एक नई पाठ फ़ाइल बनाता है। प्रतिलिपि फ़ंक्शन की सामग्री की प्रतिलिपि बनाता है gzipReader तक असम्पीडित फ़ाइल.

Zlib के साथ डेटा को कंप्रेस और डीकंप्रेस करना

Zlib डेटा संपीड़न और विसंपीड़न के लिए एक पुस्तकालय है; पुस्तकालय LZ77 एल्गोरिथ्म का भी उपयोग करता है। Zlib C में लिखा गया है और व्यापक रूप से अन्य संपीड़न पुस्तकालयों और सॉफ़्टवेयर के आधार के रूप में उपयोग किया जाता है। भिन्न gzip, zlib एक पुस्तकालय है, और zlib ए शामिल नहीं है फ़ाइल फ़ारमैट. हालाँकि, इसका उपयोग अक्सर PNG या HTTP जैसे कंटेनर स्वरूपों में संग्रहीत डेटा को संपीड़ित करने के लिए किया जाता है।

Zlib के साथ कंप्रेस करने की प्रक्रिया gzip की तरह ही है। आप एक zlib फ़ाइल बनाएंगे, एक लेखक को कॉन्फ़िगर करेंगे, मूल फ़ाइल खोलेंगे, और सामग्री को संपीड़ित फ़ाइल में कॉपी करेंगे।

आयात (
"संपीड़ित/zlib"
"आईओ"
"ओएस"
)

समारोहमुख्य() {
// एक नई फाइल बनाएं "example.zlib"
फ़ाइल, त्रुटि: = os. बनाएं("उदाहरण.zlib")
// यदि त्रुटि होती है, तो घबराएं और कार्यक्रम को रोक दें
अगर गलती! = शून्य {
घबड़ाहट(गलत)
}
// सुनिश्चित करें कि फ़ंक्शन के वापस आने के बाद फ़ाइल बंद हो गई है
आस्थगित करें फ़ाइल। बंद करना()

// सर्वोत्तम संपीड़न स्तर के साथ एक नया zlib लेखक बनाएँ
लेखक, त्रुटि: = zlib. NewWriterLevel (फ़ाइल, zlib. सर्वश्रेष्ठ संपीड़न)
// यदि त्रुटि होती है, तो घबराएं और कार्यक्रम को रोक दें
अगर गलती! = शून्य {
घबड़ाहट(गलत)
}
// सुनिश्चित करें कि फ़ंक्शन के वापस आने के बाद लेखक बंद हो गया है
आस्थगित करें लेखक। बंद करना()

// इनपुट फ़ाइल "example.txt" खोलें
इनपुटफाइल, त्रुटि: = os. खुला("example.txt")
// यदि त्रुटि होती है, तो घबराएं और कार्यक्रम को रोक दें
अगर गलती! = शून्य {
घबड़ाहट(गलत)
}
// सुनिश्चित करें कि फ़ंक्शन के वापस आने के बाद इनपुट फ़ाइल बंद हो गई है
आस्थगित करें इनपुट फ़ाइल। बंद करना()

// इनपुट फ़ाइल की सामग्री को लेखक के पास कॉपी करें
कब। कॉपी (लेखक, इनपुटफाइल)
}

बनाएं विधि zlib फ़ाइल बनाता है, और न्यूराइटरलेवल फ़ंक्शन फ़ाइल के लिए निर्दिष्ट विकल्प के साथ एक लेखक बनाता है (इस मामले में, सबसे अच्छा संपीड़न विकल्प)। खुला की विधि ओएस पैकेज पाठ फ़ाइल खोलता है, और प्रतिलिपि का कार्य आईओ पैकेज पाठ फ़ाइल की सामग्री को संपीड़न प्रक्रिया में zlib फ़ाइल में कॉपी करता है।

Zlib फ़ाइल को डीकंप्रेस करने के लिए, आपको कंप्रेस की गई फ़ाइल को खोलना होगा, एक नया zlib रीडर बनाना होगा और अंत में रीडर की सामग्री को मानक आउटपुट में कॉपी करना होगा।

आयात (
"संपीड़ित/zlib"
"आईओ"
"ओएस"
)

समारोहमुख्य() {
// संपीड़ित फ़ाइल "compressed_file.zlib" खोलें
फ़ाइल, त्रुटि: = os. खुला("compressed_file.zlib")
// यदि त्रुटि होती है, तो घबराएं और कार्यक्रम को रोक दें
अगर गलती! = शून्य {
घबड़ाहट(गलत)
}
// सुनिश्चित करें कि फ़ंक्शन के वापस आने के बाद फ़ाइल बंद हो गई है
आस्थगित करें फ़ाइल। बंद करना()

// संपीड़ित फ़ाइल के लिए एक नया zlib रीडर बनाएं
पाठक, त्रुटि: = zlib. न्यूरीडर (फ़ाइल)
// यदि त्रुटि होती है, तो घबराएं और कार्यक्रम को रोक दें
अगर गलती! = शून्य {
घबड़ाहट(गलत)
}
// सुनिश्चित करें कि फ़ंक्शन लौटने के बाद पाठक बंद हो गया है
आस्थगित करें पाठक। बंद करना()

// पाठक की सामग्री को मानक आउटपुट में कॉपी करें
कब। कॉपी (ओ.एस. स्टडआउट, पाठक)
}

मुख्य कार्य zlib फ़ाइल को खोलता है ओएस पैकेज खुला समारोह, और न्यूरीडर का कार्य zlib पैकेज zlib फाइल को रीडर इंस्टेंस में पढ़ता है। प्रतिलिपि की विधि आईओ पैकेज सामग्री को पाठक से मानक आउटपुट (इस मामले में, कंसोल) में कॉपी करता है।

फ़ाइल संपीड़न के लिए लेखन कोड कार्यों को स्वचालित करने और कई फ़ाइलों को संपीड़ित करने के लिए उपयोगी है। यदि आपको केवल कुछ फ़ाइलों को संपीड़ित करने की आवश्यकता है, तो आप WinRar, WinZip, Express Zip, और Bandizip जैसे एप्लिकेशन का उपयोग कर सकते हैं।