Python 3.7

gzip - gzip फ़ाइलों के लिए समर्थन




python

gzip - gzip फ़ाइलों के लिए समर्थन

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

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

डेटा संपीड़न zlib मॉड्यूल द्वारा प्रदान किया जाता zlib

gzip मॉड्यूल GzipFile क्लास, साथ ही open() , compress() और decompress() सुविधा फ़ंक्शंस प्रदान करता है। GzipFile वर्ग डेटा को स्वचालित रूप से संपीड़ित या विघटित करने के लिए gzip -format फ़ाइलों को पढ़ता और लिखता है, ताकि यह एक साधारण फ़ाइल ऑब्जेक्ट की तरह GzipFile

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

मॉड्यूल निम्नलिखित वस्तुओं को परिभाषित करता है:

gzip.open(filename, mode='rb', compresslevel=9, encoding=None, errors=None, newline=None)

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

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

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

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

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

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

संस्करण 3.3 में परिवर्तित: फ़ाइल नाम होने के लिए फ़ाइल नाम के लिए जोड़ा गया समर्थन, पाठ मोड के लिए समर्थन, और एन्कोडिंग , त्रुटियाँ और नए तर्क।

संस्करण 3.4 में परिवर्तित: 'x' , 'xb' और 'xt' मोड के लिए जोड़ा गया समर्थन।

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

class gzip.GzipFile(filename=None, mode=None, compresslevel=9, fileobj=None, mtime=None)

GzipFile वर्ग के लिए कंस्ट्रक्टर, जो फ़ाइल ऑब्जेक्ट के अधिकांश तरीकों को GzipFile truncate() विधि के अपवाद के साथ अनुकरण करता है। फ़ाइलबॉज और फ़ाइलनाम में से कम से कम एक गैर-तुच्छ मान दिया जाना चाहिए।

नया वर्ग उदाहरण fileobj पर आधारित है, जो एक नियमित फ़ाइल, एक io.BytesIO ऑब्जेक्ट, या कोई अन्य ऑब्जेक्ट जो किसी फ़ाइल का अनुकरण करता है, हो सकता है। यह None में None चूक None , जिस स्थिति में फ़ाइल ऑब्जेक्ट प्रदान करने के लिए फ़ाइल नाम खोला जाता है।

जब फाइलबॉज कोई None , फ़ाइल नाम तर्क केवल gzip फ़ाइल हेडर में शामिल करने के लिए उपयोग किया जाता है, जिसमें असम्पीडित फ़ाइल का मूल फ़ाइल नाम शामिल हो सकता है। यह फ़ाइलबोज के फ़ाइल नाम के लिए चूक करता है, अगर यह असाध्य है ; अन्यथा, यह खाली स्ट्रिंग को डिफॉल्ट करता है, और इस मामले में मूल फ़ाइल नाम हेडर में शामिल नहीं है।

मोड तर्क 'r' , 'rb' , 'a' , 'ab' , 'w' , 'wb' , 'x' , या 'xb' कोई भी हो सकता है, इस पर निर्भर करता है कि फाइल पढ़ी जाएगी या लिखी जाएगी। । यदि डिस्क्रिएबल है तो डिफॉल्ट फाइलबज का मोड है; अन्यथा, डिफ़ॉल्ट 'rb'

ध्यान दें कि फ़ाइल हमेशा बाइनरी मोड में खोली जाती है। पाठ मोड में एक संपीड़ित फ़ाइल खोलने के लिए, open() उपयोग करें open() या ( GzipFile साथ अपने GzipFile को io.TextIOWrapper )।

संपीड़ित तर्क संपीड़न के स्तर को नियंत्रित करने वाला 0 से 9 तक का पूर्णांक है; 1 सबसे तेज़ है और कम से कम संपीड़न पैदा करता है, और 9 सबसे धीमा है और सबसे अधिक संपीड़न पैदा करता है। 0 कोई कंप्रेशन नहीं है। डिफ़ॉल्ट 9

माइम तर्क एक वैकल्पिक सांख्यिक टाइमस्टैम्प है जिसे संपीड़ित करते समय धारा में अंतिम संशोधन समय क्षेत्र के लिए लिखा जाता है। यह केवल संपीड़न मोड में प्रदान किया जाना चाहिए। यदि छोड़ दिया गया है या None , तो वर्तमान समय का उपयोग किया जाता है। अधिक विवरण के लिए mtime विशेषता देखें।

GzipFile ऑब्जेक्ट को close() विधि को कॉलबॉज बंद नहीं करता है, क्योंकि आप संपीड़ित डेटा के बाद अधिक सामग्री को जोड़ना चाह सकते हैं। यह आपको io.BytesIO रूप में लिखने के लिए खोले गए io.BytesIO ऑब्जेक्ट को भी पास करने की अनुमति देता है, और io.BytesIO ऑब्जेक्ट के getvalue() पद्धति का उपयोग करके परिणामी मेमोरी बफर को पुनः प्राप्त करता है।

GzipFile io.BufferedIOBase इंटरफ़ेस का समर्थन करता है, जिसमें पुनरावृत्ति और स्टेटमेंट शामिल है। केवल truncate() पद्धति लागू नहीं की गई है।

GzipFile निम्नलिखित विधि और विशेषता भी प्रदान करता है:

peek(n)

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

ध्यान दें

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

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

mtime

जब decompressing, सबसे हाल ही में पढ़ा हेडर में अंतिम संशोधन समय क्षेत्र का मान पूर्णांक के रूप में, इस विशेषता से पढ़ा जा सकता है। किसी भी हेडर को पढ़ने से पहले प्रारंभिक मूल्य कोई भी None

इस टाइमस्टैम्प क्षेत्र को शामिल करने के लिए सभी गज़िप संपीडित धाराओं की आवश्यकता होती है। गनज़िप जैसे कुछ कार्यक्रम टाइमस्टैम्प का उपयोग करते हैं। प्रारूप time.time() का रिटर्न मान के समान है। time.time() और os.stat() द्वारा लौटाए गए ऑब्जेक्ट की st_mtime विशेषता।

संस्करण 3.1 में बदला गया: माइम कंस्ट्रक्टर तर्क और mtime विशेषता के with स्टेटमेंट के लिए समर्थन जोड़ा गया था।

संस्करण 3.2 में परिवर्तित: शून्य-गद्देदार और अचूक फाइलों के लिए समर्थन जोड़ा गया था।

संस्करण 3.3 में बदला गया: io.BufferedIOBase.read1() विधि अब लागू की गई है।

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

संस्करण 3.5 में परिवर्तित: मनमाने बाइट्स जैसी वस्तुओं को लिखने के लिए जोड़ा गया समर्थन। read() पद्धति अब किसी के None तर्क को स्वीकार None

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

gzip.compress(data, compresslevel=9)

संपीड़ित डेटा वाले bytes ऑब्जेक्ट को वापस करते हुए , डेटा को संपीड़ित करें। ऊपर GzipFile कंस्ट्रक्टर में GzipFile का एक ही अर्थ है।

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

gzip.decompress(data)

डेटा को डिकम्प्रेस करें, एक bytes ऑब्जेक्ट को असम्पीडित डेटा को वापस लौटाता है।

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

उपयोग के उदाहरण

एक संपीड़ित फ़ाइल को पढ़ने के तरीके का उदाहरण:

import gzip
with gzip.open('/home/joe/file.txt.gz', 'rb') as f:
    file_content = f.read()

संकुचित GZIP फ़ाइल बनाने का उदाहरण:

import gzip
content = b"Lots of content here"
with gzip.open('/home/joe/file.txt.gz', 'wb') as f:
    f.write(content)

GZIP को मौजूदा फ़ाइल को संपीड़ित करने के तरीके का उदाहरण:

import gzip
import shutil
with open('/home/joe/file.txt', 'rb') as f_in:
    with gzip.open('/home/joe/file.txt.gz', 'wb') as f_out:
        shutil.copyfileobj(f_in, f_out)

बाइनरी स्ट्रिंग को संक्षिप्त करने के लिए GZIP का उदाहरण:

import gzip
s_in = b"Lots of content here"
s_out = gzip.compress(s_in)

यह भी देखें

Module zlib
Gzip फ़ाइल प्रारूप का समर्थन करने के लिए आवश्यक बुनियादी डेटा संपीड़न मॉड्यूल।