কম্পিউটার টিউটোরিয়াল

পাইথনে mmap মডিউল দিয়ে মেমরি-ম্যাপড ফাইল সাপোর্ট

ফাইল কন্টেন্ট মেমরিতে ম্যাপ করে ডায়রেক্টলি ম্যানিপুলেট করার জন্য পাইথনের mmap মডিউল ব্যবহার করা হয়। এটি সিস্টেম কল (open, read, lseek) ছাড়া ফাইল অ্যাক্সেস দিয়ে পারফরম্যান্স বাড়ায়।

১. মেমরি-ম্যাপড ফাইল পড়া

mmap.mmap(fobj.fileno(), length=0, access=mmap.ACCESS_READ) দিয়ে ফাইল অবজেক্ট তৈরি করুন এবং স্লাইসিং দিয়ে ডেটা পড়ুন।

উদাহরণ

import mmap

def read_mmap(fname):
    with open(fname, mode="r", encoding="utf8") as fobj:
        with mmap.mmap(fobj.fileno(), length=0, access=mmap.ACCESS_READ) as mmap_obj:
            print(mmap_obj[4:26])

read_mmap('E:\\test.txt')
# Output: 'emissions from gaseous'

২. mmap দিয়ে খোঁজা (Find)

রেগুলার I/O এবং mmap-এর খোঁজার গতি তুলনা করা হয়েছে। mmap অনেক দ্রুত।

উদাহরণ

import mmap, time

def regular_io_find(fname):
    with open(fname, mode="r", encoding="utf-8") as fobj:
        text = fobj.read()
        text.find("Death ")

def mmap_io_find(fname):
    with open(fname, mode="r", encoding="utf-8") as fobj:
        with mmap.mmap(fobj.fileno(), length=0, access=mmap.ACCESS_READ) as mmap_obj:
            mmap_obj.find(b"Death ")

# টাইমিং কোড উপেক্ষা করা হয়েছে

৩. মেমরি-ম্যাপড ফাইলে লিখা

access=mmap.ACCESS_WRITE দিয়ে ফাইল খুলে স্লাইসিং অ্যাসাইনমেন্ট দিয়ে লিখুন।

উদাহরণ

import mmap

def mmap_io_write(fname):
    with open(fname, mode="r+") as fobj:
        with mmap.mmap(fobj.fileno(), length=0, access=mmap.ACCESS_WRITE) as mmap_obj:
            mmap_obj[20:26] = b"Hello!"
            mmap_obj.flush()

mmap_io_write('E:\\emissions.txt')
  1. পাইথনে পান্ডাস দিয়ে হেডার ছাড়া CSV ফাইল পড়া

  2. পাইথনে ভেক্টরাইজেশন (Vectorization) – পারফরম্যান্স অপ্টিমাইজেশন

  3. পাইথনে ফাইল অবজেক্ট: ফাইল পড়া, লিখা এবং ম্যানেজমেন্টের সম্পূর্ণ গাইড

  4. পাইথনে openpyxl ব্যবহার করে এক্সেল ফাইল পড়া ও লিখা