'ज़िपिमपोर्ट' मॉड्यूल का उपयोग ज़िप-प्रारूप अभिलेखागार से पायथन मॉड्यूल और पैकेज आयात करना संभव बनाता है। यह मॉड्यूल sys.path के एक आइटम को एक ज़िप फ़ाइल संग्रह का नामकरण करने वाली स्ट्रिंग होने की अनुमति देता है। ज़िप संग्रह में कोई भी फ़ाइल मौजूद हो सकती है, लेकिन केवल .py और .pyc फ़ाइलें आयात के लिए उपलब्ध हैं। डायनामिक मॉड्यूल के ज़िप आयात की अनुमति नहीं है।
इस मॉड्यूल की कार्यक्षमता को पहले 'newdir' निर्देशिका में फ़ाइलों का ज़िप संग्रह बनाकर समझाया गया है। माना जाता है कि निम्न फ़ाइलें newdir निर्देशिका में मौजूद हैं
['guess.py', 'hello.py', 'impzip.py', 'mytest.py', 'prime.py', 'prog.py', 'tmp.py']
import sys, glob import zipfile files = glob.glob("*.py") print (files) zf = zipfile.PyZipFile('zipimp.zip', mode='w') for file in files: zf.write(file) zf.close()
अब हम शेष लेख में 'zipimp.zip' का उपयोग करते हैं।
'zipimport' मॉड्यूल zipimporter . को परिभाषित करता है वर्ग जिसमें निम्नलिखित विधियों को परिभाषित किया गया है
ज़िप आयातक ()
यह विधि कंस्ट्रक्टर है जो एक नया zipimporter उदाहरण बनाता है। इसे ज़िप फ़ाइल के तर्क के लिए पथ की आवश्यकता है। ZipImportError को उठाया जाता है यदि यह एक मान्य ज़िप संग्रह नहीं है।
>>> import zipimport >>> importer = zipimport.zipimporter('zipimp.zip')
find_module ()
यह विधि निर्दिष्ट मॉड्यूल के लिए खोज करती है। यह zipimporter उदाहरण देता है यदि मॉड्यूल पाया गया था, या कोई नहीं अगर यह नहीं था।
>>> ret=importer.find_module('prime') >>> ret <zipimporter object "zipimp.zip"> >>> ret=importer.find_module('sample') >>> ret >>> print (ret) None
get_code()
यह विधि निर्दिष्ट मॉड्यूल के लिए कोड ऑब्जेक्ट लौटाती है, यदि मॉड्यूल नहीं मिला तो ZipImportError उठाता है।
>>> prog=importer.get_code('prime') >>> print (prog) <code object <module> at 0x022A4650, file "zipimp.zip\prime.py", line 1>
load_module()
यह विधि निर्दिष्ट मॉड्यूल को लोड करती है। यह आयातित मॉड्यूल लौटाता है, या नहीं मिलने पर ZipImportError उठाता है।
>>> importer = zipimport.zipimporter('zipimp.zip') >>> mod=importer.load_module('prog') 30 >>> mod.__name__ 'prog' >>> mod.__file__ 'zipimp.zip\\prog.py' >>> mod.__loader__ <zipimporter object "zipimp.zip">
get_source()
यह विधि निर्दिष्ट मॉड्यूल के लिए स्रोत कोड लौटाती है।
>>> prog=importer.get_source('prime') >>> print (prog) def isprime(x): for i in range(2,x-1): if x%i==0: return False else: return True f = int(input()) l = int(input()) primelist = list(filter(isprime, range(f,l))) print ("prime1", "prime2", "composites") composites=[(primelist[i-1], primelist[i],(primelist[i]-1)-primelist[i-1]) for i in range(1,len(primelist))] print (composites)