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

पायथन (एमएमएपी) में मेमोरी-मैप्ड फ़ाइल समर्थन?

जब आप किसी फ़ाइल ऑब्जेक्ट को पायथन प्रोग्राम में पढ़ते हैं और संशोधित करना चाहते हैं, तो इसे दो तरीकों से किया जा सकता है। पहला तरीका भौतिक भंडारण ड्राइव में सामग्री को संशोधित करना है जहां फ़ाइल स्थित है और दूसरा तरीका यह है कि इसे सीधे सिस्टम की मेमोरी या राम में संशोधित किया जाए। इस लेख में हम देखेंगे कि पायथन में उपलब्ध एमएमएपी मॉड्यूल का उपयोग करके फ़ाइल ऑब्जेक्ट की सामग्री को कैसे पढ़ना, खोजना और संशोधित करना है। सिस्टम कॉल जैसे ओपन, रीड और फाइल में हेरफेर करने के बजाय, मेमोरी-मैपिंग फ़ाइल के डेटा को मेमोरी में डालता है जो आपको सीधे मेमोरी में फाइलों में हेरफेर करने की अनुमति देता है।

मेमोरी मैप की गई फ़ाइल पढ़ें

नीचे दिए गए उदाहरण में हम एक बार में एक पूरी फाइल को मेमोरी में पढ़ते हैं और इसे एक फाइल ऑब्जेक्ट के रूप में मेमोरी में रखते हैं। फिर हम इसे रीड मोड में एक्सेस करते हैं। अंत में जैसा कि आप देख सकते हैं कि पूरी फाइल एक ऐसी वस्तु का प्रतिनिधित्व करती है जिससे हम आवश्यक पाठ प्राप्त करने के लिए कुछ पदों को काटते हैं।

उदाहरण

आयात करें ) mmap_obj के रूप में:प्रिंट(mmap_obj[4:26])read_mmap('E:\\test.txt')

आउटपुट

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -

'गैसीय उत्सर्जन'

mmap का उपयोग करके ढूंढें

उदाहरण

आयात mmapimport timedef Regular_io_find(fname):open(fname, mode="r", एन्कोडिंग="utf-8") के साथ fobj के रूप में:text =fobj.read() text.find("Death") def mmap_io_find (fname):open(fname, mode="r", एन्कोडिंग="utf-8") के साथ fobj के रूप में:mmap.mmap(fobj.fileno(), length=0, access=mmap.ACCESS_READ) के साथ mmap_obj के रूप में:mmap_obj.find(b"Death") start_time_r =time.time()regular_io_find('E:\\emissions.txt')end_time_r =time.time()print("Regular read start time:",start_time_r)print(" नियमित पढ़ने का प्रारंभ समय:",end_time_r)प्रिंट ('नियमित रूप से पढ़ने का समय:{0}'। प्रारूप (end_time_r - start_time_r)) start_time_m =time.time()mmap_io_find('E:\\emissions.txt')end_time_m =समय .time() प्रिंट ("एमएमएपी रीड स्टार्ट टाइम:", start_time_m) प्रिंट ("एमएमएपी रीड स्टार्ट टाइम:", एंड_टाइम_एम) प्रिंट ('एमएमएपी रीड टाइम:{0}'। फॉर्मेट (एंड_टाइम_एम - स्टार्ट_टाइम_एम))

आउटपुट

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -

2013Regualr read start time:1609812463.2718163Regualr read end time:1609812463.2783241 खोजने के लिए नियमित रूप से पढ़ने का समय:0.00650787353515625mmap read start time:1609812463.2783241mmap read start time:1609812463.2783241mmap read time to find :0.0

फ़ाइल में लिखना

नीचे के उदाहरण में हम एक फाइल लेते हैं और इसे एमएमएपी मॉड्यूल के साथ एक्सेस कोड के साथ खोलते हैं जैसे आर + जो फाइल को पढ़ने और लिखने दोनों की अनुमति देता है। फ़ाइल ऑब्जेक्ट बनाने के बाद, हम स्लाइस करके एक स्थिति चुनते हैं जहाँ हम एक स्ट्रिंग लिख सकते हैं।

उदाहरण

आयात mmapdef mmap_io_write(fname):open(fname, mode="r+") के साथ fobj के रूप में:mmap.mmap(fobj.fileno(), length=0, access=mmap.ACCESS_WRITE) के साथ mmap_obj के रूप में:mmap_obj[ 20:26] =बी"नमस्कार!" mmap_obj.flush()mmap_io_write('E:\\emissions.txt')

उपरोक्त कोड को चलाने पर हम फाइल को खोल सकते हैं और स्ट्रिंग देख सकते हैं हैलो! फ़ाइल में 20 से 26 तक बाइट की स्थिति में लिखा जाता है।


  1. पायथन में वैश्वीकरण

    इस लेख में, हम पायथन 3.x का उपयोग करके वैश्वीकरण और कार्यान्वयन में शामिल विभिन्न तकनीकों के बारे में जानेंगे। या पहले। वेक्टराइजेशन क्या है? वेक्टराइजेशन लूप के उपयोग के बिना सरणियों को लागू करने की एक तकनीक है। इसके बजाय किसी फ़ंक्शन का उपयोग करने से कोड के चलने के समय और निष्पादन समय को कुशलतापू

  1. पायथन में फाइल ऑब्जेक्ट्स?

    पायथन में, जब भी हम फ़ाइलों को पढ़ने या लिखने की कोशिश करते हैं, तो हमें किसी पुस्तकालय को आयात करने की आवश्यकता नहीं होती है क्योंकि इसे मूल रूप से संभाला जाता है। फ़ाइल ऑब्जेक्ट प्राप्त करने के लिए सबसे पहले हम बिल्ट-इन ओपन फ़ंक्शन का उपयोग करेंगे। खुला फ़ंक्शन एक फ़ाइल खोलता है और एक फ़ाइल ऑब्ज

  1. पायथन ओपनपीएक्सएल मॉड्यूल का उपयोग करके एक्सेल फ़ाइल को पढ़ें और लिखें

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