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

Python में Zip आर्काइव से मॉड्यूल आयात करना (zipimport)


'zipimport' मॉड्यूल के उपयोग से Python मॉड्यूल और पैकेज को ZIP-फॉर्मेट आर्काइव से आयात करना संभव हो जाता है। यह मॉड्यूल sys.path की एक आइटम को ZIP फ़ाइल आर्काइव का नाम देने वाली स्ट्रिंग होने की अनुमति भी देता है। आर्काइव में कोई भी फ़ाइल मौजूद हो सकती है, लेकिन केवल .py और .pyc फ़ाइलें आयात के लिए उपलब्ध हैं। डायनामिक मॉड्यूल का ZIP आयात अस्वीकृत है।

इस मॉड्यूल की कार्यक्षमता को 'newdir' डायरेक्टरी में फ़ाइलों का एक ZIP आर्काइव बनाकर समझाया गया है। निम्नलिखित फ़ाइलों को 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()

यह मेथड कंस्ट्रक्टर है जो एक नया zipimporter इंस्टेंस बनाता है। इसके लिए ZIP फ़ाइल के पथ की आवश्यकता होती है। यदि यह वैध ZIP आर्काइव नहीं है तो ZipImportError उठाया जाता है।

>>> import zipimport
>>> importer = zipimport.zipimporter('zipimp.zip')

find_module()

यह मेथड निर्दिष्ट मॉड्यूल की खोज करता है। यदि मॉड्यूल मिल जाता है तो zipimporter इंस्टेंस लौटाता है, या नहीं मिलने पर None।

>>> ret = importer.find_module('prime')
>>> ret

>>> ret = importer.find_module('sample')
>>> ret
>>> print(ret)
None

get_code()

यह मेथड निर्दिष्ट मॉड्यूल के लिए कोड ऑब्जेक्ट लौटाता है, यदि मॉड्यूल नहीं मिला तो ZipImportError उठाता है।

>>> prog = importer.get_code('prime')
>>> print(prog)
 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__

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. - Python में from...import * Statement का क्या उपयोग है?

    from module import * Statement from module import * Statement का उपयोग Python Module से सभी Functions Import करने के लिए किया जाता है। उदाहरण यदि आप math Module से सभी Functions Import करना चाहते हैं और उन्हें Call करते समय math. Prefix नहीं करना चाहते, तो आप इसे निम्न प्रकार से कर सकते हैं: >&

  1. - Python Module से Single Function कैसे Import करें?

    Python Module से Single Function Import करना आप from module import function Statement का उपयोग करके Python Module से Specific Function Import कर सकते हैं। उदाहरण यदि आप math Library से sin Function Import करना चाहते हैं बिना किसी अन्य Function को Import किए: >>> from math import sin >&

  1. - Python में Multiple Imports कैसे करें?

    Python में Multiple Imports तरीका 1: Multiple Import Statements >>> import os >>> import math >>> import sys तरीका 2: Single Statement में Multiple Modules (Comma-separated) >>> import math, sys, os तरीका 3: Module Aliases के साथ import math as Mathematics, s