Python 3.7

bz2 - bzip2 संपीड़न के लिए समर्थन




python

bz2 - bzip2 संपीड़न के लिए समर्थन

स्रोत कोड: Lib/bz2.py

यह मॉड्यूल bzip2 संपीड़न एल्गोरिथ्म का उपयोग करके डेटा को संपीड़ित और विघटित करने के लिए एक व्यापक इंटरफ़ेस प्रदान करता है।

bz2 मॉड्यूल में शामिल हैं:

  • संकुचित फ़ाइलों को पढ़ने और लिखने के लिए open() फ़ंक्शन और BZ2File वर्ग।
  • वृद्धिशील (डी) संपीड़न के लिए BZ2Compressor और BZ2Decompressor कक्षाएं।
  • एक शॉट (डी) संपीड़न के लिए compress() और decompress() कार्य करता है।

इस मॉड्यूल की सभी कक्षाएं सुरक्षित रूप से कई थ्रेड से एक्सेस की जा सकती हैं।

(डी) फ़ाइलों का संपीड़न

bz2.open(filename, mode='r', compresslevel=9, encoding=None, errors=None, newline=None)

एक bzip2- संपीड़ित फ़ाइल को बाइनरी या टेक्स्ट मोड में खोलें, एक फ़ाइल ऑब्जेक्ट लौटाता है।

BZ2File लिए BZ2File , फ़ाइल नाम तर्क एक वास्तविक फ़ाइल नाम (एक str या bytes ऑब्जेक्ट), या पढ़ने या लिखने के लिए एक मौजूदा फ़ाइल ऑब्जेक्ट हो सकता है।

मोड तर्क किसी भी 'r' , 'rb' , 'w' , 'wb' , 'x' , 'xb' , 'a' या 'ab' बाइनरी मोड के लिए, या 'rt' , 'wt' , पाठ मोड के लिए 'xt' , या 'at' । डिफ़ॉल्ट 'rb'

BZ2File कंस्ट्रक्टर के लिए 1 से 9 तक का पूर्णांक है।

बाइनरी मोड के लिए, यह फ़ंक्शन BZ2File कंस्ट्रक्टर के बराबर है: BZ2File(filename, mode, compresslevel=compresslevel) । इस स्थिति में, एन्कोडिंग , त्रुटियों और newline तर्क प्रदान नहीं किया जाना चाहिए।

टेक्स्ट मोड के लिए, एक BZ2File ऑब्जेक्ट बनाया जाता है, और निर्दिष्ट एन्कोडिंग, त्रुटि से निपटने के व्यवहार और लाइन एंडिंग (ओं) के साथ एक io.TextIOWrapper उदाहरण में लपेटा जाता है।

संस्करण 3.3 में नया।

संस्करण 3.4 में बदला गया: 'x' (अनन्य निर्माण) मोड जोड़ा गया था।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

class bz2.BZ2File(filename, mode='r', buffering=None, compresslevel=9)

एक bzip2- संपीड़ित फ़ाइल को बाइनरी मोड में खोलें।

यदि फ़ाइलनाम एक str या bytes ऑब्जेक्ट है, तो नामित फ़ाइल को सीधे खोलें। अन्यथा, फ़ाइल नाम एक फ़ाइल ऑब्जेक्ट होना चाहिए, जिसका उपयोग संपीड़ित डेटा को पढ़ने या लिखने के लिए किया जाएगा।

मोड तर्क या तो पढ़ने के लिए 'r' हो सकता है (डिफ़ॉल्ट), ओवर राइटिंग के लिए 'w' , एक्सक्लूसिव क्रिएशन के लिए 'x' , या एपेंडिंग के लिए 'a' । इन्हें क्रमशः 'rb' , 'wb' , 'xb' और 'ab' रूप में दिया जा सकता है।

यदि फ़ाइल नाम एक फ़ाइल ऑब्जेक्ट (वास्तविक फ़ाइल नाम के बजाय) है, तो 'w' का एक मोड फ़ाइल को छोटा नहीं करता है, और इसके बजाय 'a' बराबर है।

बफ़रिंग तर्क पर ध्यान नहीं दिया जाता है। इसका उपयोग पदावनत है।

यदि मोड 'w' या 'a' , तो compresslevel 1 और 9 बीच एक संख्या हो सकती है जो संपीड़न के स्तर को निर्दिष्ट करती है: 1 सबसे कम संपीड़न पैदा करता है, और 9 (डिफ़ॉल्ट) सबसे अधिक संपीड़न पैदा करता है।

यदि मोड 'r' , तो इनपुट फ़ाइल कई संपीड़ित धाराओं का संघटन हो सकती है।

BZ2File detach() और io.BufferedIOBase detach() को छोड़कर io.BufferedIOBase द्वारा निर्दिष्ट सभी सदस्यों को प्रदान करता है। कथन और कथन के with समर्थित हैं।

BZ2File निम्नलिखित विधि भी प्रदान करता है:

peek([n])

फ़ाइल स्थिति को आगे बढ़ाए बिना बफर डेटा लौटाएं। कम से कम एक बाइट डेटा लौटाया जाएगा (जब तक कि ईओएफ पर नहीं)। लौटे बाइट्स की सटीक संख्या अनिर्दिष्ट है।

ध्यान दें

कॉलिंग BZ2File peek() BZ2File की फ़ाइल स्थिति को नहीं बदलता है, यह अंतर्निहित फ़ाइल ऑब्जेक्ट की स्थिति को बदल सकता है (उदाहरण के लिए यदि BZ2File फ़ाइल नाम के लिए फ़ाइल ऑब्जेक्ट पास करके बनाया गया था)।

संस्करण 3.3 में नया।

संस्करण 3.1 में बदला गया: बयान के with समर्थन जोड़ा गया था।

संस्करण 3.3 में बदला गया: fileno() , readable() , seekable() , writable() , read1() और readinto() विधियों को जोड़ा गया।

संस्करण 3.3 में बदला गया: फ़ाइल नाम के लिए वास्तविक फ़ाइल नाम के बजाय फ़ाइल ऑब्जेक्ट होने के लिए समर्थन जोड़ा गया था।

संस्करण 3.3 में बदला गया: मल्टी-स्ट्रीम फ़ाइलों को पढ़ने के लिए समर्थन के साथ 'a' (परिशिष्ट) मोड जोड़ा गया था।

संस्करण 3.4 में बदला गया: 'x' (अनन्य निर्माण) मोड जोड़ा गया था।

संस्करण 3.5 में बदला गया: read() विधि अब None तर्क को स्वीकार करता है।

संस्करण 3.6 में परिवर्तित: एक पथ जैसी वस्तु को स्वीकार करता है

वृद्धिशील (डी) संपीड़न

class bz2.BZ2Compressor(compresslevel=9)

एक नया कंप्रेसर ऑब्जेक्ट बनाएं। इस ऑब्जेक्ट का उपयोग डेटा को संक्षिप्त रूप से संपीड़ित करने के लिए किया जा सकता है। एक-शॉट संपीड़न के लिए, इसके बजाय compress() फ़ंक्शन का उपयोग करें।

यदि दिया गया हो, तो कंपेसेवल, 1 और 9 बीच की संख्या होना चाहिए। डिफ़ॉल्ट 9

compress(data)

कंप्रेसर ऑब्जेक्ट को डेटा प्रदान करें। यदि संभव हो तो संपीड़ित डेटा का एक हिस्सा लौटाता है, या अन्यथा एक खाली बाइट स्ट्रिंग।

जब आपने कंप्रेसर को डेटा प्रदान करना समाप्त कर लिया है, तो संपीड़न प्रक्रिया को समाप्त करने के लिए flush() विधि को कॉल करें।

flush()

संपीड़न प्रक्रिया को समाप्त करें। आंतरिक बफ़र्स में छोड़े गए संपीड़ित डेटा को लौटाता है।

इस विधि को कॉल करने के बाद कंप्रेसर ऑब्जेक्ट का उपयोग नहीं किया जा सकता है।

class bz2.BZ2Decompressor

एक नया डिकम्प्रेसर ऑब्जेक्ट बनाएं। इस ऑब्जेक्ट का उपयोग डेटा को अचानक से कम करने के लिए किया जा सकता है। एक-शॉट संपीड़न के लिए, इसके बजाय decompress() फ़ंक्शन का उपयोग करें।

ध्यान दें

यह वर्ग BZ2File decompress() और BZ2File विपरीत, कई संपीड़ित धाराओं वाले इनपुट को पारदर्शी रूप से नहीं BZ2File । यदि आपको BZ2Decompressor साथ मल्टी-स्ट्रीम इनपुट को BZ2Decompressor , तो आपको प्रत्येक स्ट्रीम के लिए एक नए BZ2Decompressor उपयोग करना होगा।

decompress(data, max_length=-1)

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

यदि max_length nonnegative है, तो decompressed डेटा के अधिकांश max_length बाइट्स पर लौटता है। यदि यह सीमा समाप्त हो जाती है और आगे का उत्पादन किया जा सकता है, तो needs_input विशेषता False सेट हो जाएगी। इस स्थिति में, आउटपुट को और अधिक प्राप्त करने के लिए अगली कॉल decompress() b'' रूप में डेटा प्रदान कर सकती है।

यदि इनपुट डेटा के सभी विघटित हो गए थे और वापस आ गए (या तो क्योंकि यह needs_input बाइट्स की तुलना में कम था, या क्योंकि needs_input नकारात्मक थी), needs_input विशेषता True सेट हो जाएंगी।

स्ट्रीम के अंत के बाद डेटा को EOFError करने का प्रयास एक EOFError उठाता है। स्ट्रीम के अंत के बाद पाया गया कोई भी डेटा unused_data और unused_data विशेषता में सहेजा जाता है।

संस्करण 3.5 में बदला गया : अधिकतम_प्रत्यक्ष पैरामीटर जोड़ा गया।

eof

True अगर अंत-स्ट्रीम स्ट्रीम तक पहुँच गया है।

संस्करण 3.3 में नया।

unused_data

संपीड़ित स्ट्रीम के अंत के बाद डेटा मिला।

यदि स्ट्रीम के अंत तक पहुंचने से पहले यह विशेषता एक्सेस की जाती है, तो इसका मान b''

needs_input

यदि नया असम्पीडित इनपुट की आवश्यकता से पहले decompress() विधि अधिक विघटित डेटा प्रदान कर सकती है तो False

संस्करण 3.5 में नया।

एक-शॉट (डी) संपीड़न

bz2.compress(data, compresslevel=9)

डेटा संपीड़ित करें

यदि दिया गया हो, तो कंपेसेवल, 1 और 9 बीच की संख्या होना चाहिए। डिफ़ॉल्ट 9

वृद्धिशील संपीड़न के लिए, इसके बजाय एक BZ2Compressor उपयोग करें।

bz2.decompress(data)

डीकंप्रेस डेटा

यदि डेटा कई संपीड़ित धाराओं का संघटन है, तो सभी धाराओं को हटा दें।

वृद्धिशील विघटन के लिए, इसके बजाय एक BZ2Decompressor उपयोग करें।

संस्करण 3.3 में बदला गया: मल्टी-स्ट्रीम इनपुट के लिए समर्थन जोड़ा गया था।