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

पायथन में ZIP आर्काइव्स के साथ काम करना (zipfile मॉड्यूल)

ZIP आर्काइविंग और कम्प्रेशन के लिए उपयोग किए जाने वाले सबसे लोकप्रिय फ़ाइल फॉर्मेट्स में से एक है। यह MSDOS और PC के दिनों से उपयोग में है और प्रसिद्ध PKZIP एप्लिकेशन द्वारा उपयोग किया गया है।

पायथन की स्टैंडर्ड लाइब्रेरी में zipfile मॉड्यूल ZIP आर्काइव्स बनाने, निकालने, पढ़ने और लिखने के लिए टूल्स की सुविधा प्रदान करने वाली क्लासेस प्रदान करता है।

ZipFile()

यह फ़ंक्शन फ़ाइल पैरामीटर से ZipFile ऑब्जेक्ट लौटाता है जो बिल्ट-इन open() फ़ंक्शन द्वारा बनाया गया स्ट्रिंग या फ़ाइल ऑब्जेक्ट हो सकता है। फ़ंक्शन को मोड पैरामीटर की आवश्यकता होती है जिसका डिफ़ॉल्ट मान 'r' है हालांकि यह आर्काइव को रीड, राइट या अपेंड मोड में खोलने के लिए 'w' या 'a' मान ले सकता है।

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

zipfile.ZIP_STORED अनकंप्रेस्ड आर्काइव मेंबर के लिए।
zipfile.ZIP_DEFLATED सामान्य ZIP कम्प्रेशन मेथड के लिए। इसके लिए zlib मॉड्यूल की आवश्यकता होती है।
zipfile.ZIP_BZIP2 BZIP2 कम्प्रेशन मेथड के लिए। इसके लिए bz2 मॉड्यूल की आवश्यकता होती है।
zipfile.ZIP_LZMA LZMA कम्प्रेशन मेथड के लिए। इसके लिए lzma मॉड्यूल की आवश्यकता होती है।

ZipFile ऑब्जेक्ट निम्न मेथड्स का उपयोग करता है:

write()

यह मेथड ZipFile ऑब्जेक्ट द्वारा दर्शाए गए आर्काइव में दी गई फ़ाइल जोड़ता है।

>>> import zipfile
>>> newzip = zipfile.ZipFile('newdir/newzip.zip', 'w')
>>> newzip.write('zen.txt')
>>> newzip.close()

मौजूदा आर्काइव में अतिरिक्त फ़ाइल को अपेंड मोड ('a' मोड के रूप में) में खोलकर जोड़ा जा सकता है।

>>> newzip = zipfile.ZipFile('newdir/newzip.zip', 'a')
>>> newzip.write('zen.txt')
>>> newzip.close()

read()

यह मेथड आर्काइव में किसी विशेष फ़ाइल से डेटा पढ़ता है।

>>> newzip = zipfile.ZipFile('newdir/newzip.zip', 'r')
>>> data = newzip.read('json.txt')
>>> data
b'["Rakesh", {"marks": [50, 60, 70]}]'

printdir()

यह मेथड दिए गए आर्काइव में सभी फ़ाइलों को सूचीबद्ध करता है।

>>> newzip.printdir()
File Name                            Modified             Size
json.txt                             2018-11-27 17:04:40  35
zen.txt                              2018-11-25 23:13:44  878

extract()

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

>>> newzip.extract('json.txt', 'newdir')
'newdir\\json.txt'

extractall()

यह मेथड आर्काइव में सभी फ़ाइलों को डिफ़ॉल्ट रूप से करंट डायरेक्टरी में निकालता है। यदि आवश्यक हो तो वैकल्पिक डायरेक्टरी को पैरामीटर के रूप में निर्दिष्ट करें।

>>> newzip.extractall('newdir')

getinfo()

यह मेथड दी गई फ़ाइल से संबंधित ZipInfo ऑब्जेक्ट लौटाता है। ZipInfo ऑब्जेक्ट फ़ाइल की विभिन्न मेटाडेटा जानकारी रखता है।

निम्न कोड आर्काइव से 'zen.txt' का ZipInfo ऑब्जेक्ट प्राप्त करता है और इससे फ़ाइलनाम, आकार और दिनांक-समय जानकारी प्राप्त करता है।

>>> inf = newzip.getinfo('zen.txt')
>>> inf.filename, inf.file_size, inf.date_time
('zen.txt', 878, (2018, 11, 25, 23, 13, 45))

infolist()

यह मेथड आर्काइव में सभी फ़ाइलों के ZipInfo ऑब्जेक्ट्स की सूची लौटाता है।

>>> newzip.infolist()
[, ]

जैसा कि पहले उल्लेख किया गया है, ZIP आर्काइव बनाते समय लागू किए जाने वाले कम्प्रेशन एल्गोरिदम को कम्प्रेशन पैरामीटर में निर्दिष्ट किया जाता है। निम्न कोड में, ZIP_DEFLATED स्थिरांक zlib कम्प्रेशन का उपयोग करके आर्काइव बनाता है।

>>> zipobj = zipfile.ZipFile('txtzip.zip', mode='w', compression=zipfile.ZIP_DEFLATED)
>>> files = glob.glob("*.txt")
>>> for file in files:
...     zipobj.write(file)
...
>>> zipobj.close()

namelist()

ZipFile ऑब्जेक्ट का यह मेथड आर्काइव में सभी फ़ाइलों की सूची लौटाता है।

>>> zipobj = zipfile.ZipFile('txtzip.zip', mode='r')
>>> zipobj.namelist()
['a!.txt', 'data().txt', 'dict.txt', 'json.txt', 'LICENSE.txt', 'lines.txt', 'msg.txt', 'NEWS.txt', 'test.txt/', 'zen.txt', 'zen1.txt', 'zenbak.txt']

setpassword()

यह मेथड पासवर्ड पैरामीटर सेट करता है जिसे आर्काइव निकालते समय प्रदान किया जाना चाहिए।

PyZipFile()

zipfile मॉड्यूल में यह फ़ंक्शन PyZipFile ऑब्जेक्ट लौटाता है। PyZipFile ऑब्जेक्ट .py एक्सटेंशन वाली फ़ाइलों को समाहित करने वाला मॉड्यूल बना सकता है। इस आर्काइव को sys.path एनवायरनमेंट वेरिएबल में जोड़ा जा सकता है ताकि मॉड्यूल को zipimport मॉड्यूल का उपयोग करके इम्पोर्ट किया जा सके।

writepy() मेथड .py फ़ाइल को संबंधित .pyc फ़ाइल में कंपाइल करने के बाद आर्काइव में जोड़ता है।

files = glob.glob("*.py")
>>> pyzipobj = zipfile.PyZipFile('pyfiles/pyzip.zip', mode='w', compression=zipfile.ZIP_LZMA)
>>> for file in files:
...     pyzipobj.writepy(file)
...
>>> pyzipobj.close()

इस लेख में zipfile मॉड्यूल में क्लासेस और फ़ंक्शन्स पर चर्चा की गई है।

  1. Python में Bokeh के साथ इमेजेज के साथ कैसे काम करें? Python में Bokeh के साथ इमेजेज के साथ कैसे काम करें?

    Bokeh में इमेजेज के साथ काम करने के लिए image_url() मेथड का उपयोग करें और इमेजेज की लिस्ट पास करें। चरण :func:show कॉल होने पर फाइल में सेव आउटपुट जनरेट करने के लिए डिफ़ॉल्ट आउटपुट स्टेट कॉन्फिगर करें। प्लॉटिंग के लिए नया फिगर बनाएं। दिए गए URLs से लोड की गई इमेजेज रेंडर करें। Bokeh ऑब्जेक्ट या एप

  1. - TensorFlow से Python में कैरेक्टर सबस्ट्रिंग के साथ कैसे काम करें?

    कैरेक्टर सबस्ट्रिंग्स का उपयोग TensorFlow में strings मॉड्यूल में मौजूद substr मेथड का उपयोग करके किया जा सकता है। इसे फिर एक Numpy array में परिवर्तित किया जाता है और फिर प्रदर्शित किया जाता है। और पढ़ें: TensorFlow क्या है और Keras, TensorFlow के साथ मिलकर न्यूरल नेटवर्क कैसे बनाता है? हम देखेंगे

  1. पायथन Pygame: विंडो पर इमेज (चित्र) प्रदर्शित करना पायथन Pygame: विंडो पर इमेज (चित्र) प्रदर्शित करना

    Pygame में इमेज लोड और डिस्प्ले इमेज फ़ाइल लोड करें → convert() से ऑप्टिमाइज़ करें → blit() से स्क्रीन पर खींचें। पूर्ण कोड उदाहरण import pygame pygame.init() w, h = 300, 300 screen = pygame.display.set_mode((w, h)) pygame.display.set_caption(Tutorialspoint Logo) # इमेज लोड और कन्वर्ट (तेज़ ब्लि