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

ज़िप अभिलेखागार से पायथन आयात मॉड्यूल (zipimport)

'ज़िपिमपोर्ट' मॉड्यूल का उपयोग ज़िप-प्रारूप अभिलेखागार से पायथन मॉड्यूल और पैकेज आयात करना संभव बनाता है। यह मॉड्यूल 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)

  1. पायथन में from...import * Statement का क्या उपयोग है?

    फ्रॉम मॉड्यूल इम्पोर्ट * स्टेटमेंट का उपयोग पायथन मॉड्यूल से सभी फंक्शन को इम्पोर्ट करने के लिए किया जाता है। उदाहरण के लिए, यदि आप गणित मॉड्यूल से सभी फ़ंक्शन आयात करना चाहते हैं और गणित उपसर्ग नहीं करना चाहते हैं। उन्हें कॉल करते समय, आप इसे इस प्रकार कर सकते हैं: >>> from math import * &

  1. पायथन मॉड्यूल से एकल फ़ंक्शन कैसे आयात करें?

    आप पाइथन मॉड्यूल से किसी विशिष्ट फ़ंक्शन को आयात करने के लिए मॉड्यूल आयात फ़ंक्शन से कथन का उपयोग कर सकते हैं। उदाहरण के लिए, यदि आप किसी अन्य फ़ंक्शन को आयात किए बिना गणित पुस्तकालय से पाप फ़ंक्शन आयात करना चाहते हैं, तो आप इसे निम्नानुसार कर सकते हैं: >>> from math import sin >>>

  1. पायथन में एकाधिक आयात कैसे करें?

    कई मॉड्यूल आयात करने के लिए, बस कई बार आयात विवरण का उपयोग करें। उदाहरण के लिए, >>> import os >>> import math >>> import sys कभी-कभी आयातों को समूहीकृत करना अधिक अर्थपूर्ण होता है। एक आयात विवरण के साथ कई मॉड्यूल आयात करने के लिए, मॉड्यूल नामों को अल्पविराम से अलग करें। उ