কম্পিউটার

পাইথনে জিজিপের সাথে সামঞ্জস্যপূর্ণ সংকোচন (zlib)


zlib মডিউল পাইথনের Zlib কম্প্রেশন লাইব্রেরির (https://www.zlib.net) বাস্তবায়ন প্রদান করে যা GNU প্রকল্পের একটি অংশ।

এই নিবন্ধটি zlib মডিউলে সংজ্ঞায়িত গুরুত্বপূর্ণ ফাংশন নিয়ে আলোচনা করে।

কম্প্রেস()

এই ফাংশনটি ডিকম্প্রেস() ফাংশনের সাথে এই মডিউলের প্রাথমিক ইন্টারফেস। এই ফাংশনটি প্যারামিটার হিসাবে দেওয়া ডেটা সংকুচিত করে বাইট অবজেক্ট প্রদান করে। ফাংশনটির লেভেল নামক আরেকটি প্যারামিটার রয়েছে যা কম্প্রেশনের মাত্রা নিয়ন্ত্রণ করে। এটি 0 থেকে 9 এর মধ্যে একটি পূর্ণসংখ্যা। সর্বনিম্ন মান 0 মানে নো কম্প্রেশন এবং 9 হল সেরা কম্প্রেশন। কম্প্রেশনের মাত্রা যত বেশি, কম্প্রেস বাইট অবজেক্টের দৈর্ঘ্য তত বেশি।

ডিকম্প্রেস()

এই ফাংশনটি কম্প্রেস() ফাংশনের বিপরীত কাজ করে। এটি সংকুচিত ডেটা পুনরুদ্ধার করে। এই ফাংশনে wbits নামক একটি ঐচ্ছিক প্যারামিটার থাকতে পারে যা ইতিহাসের বাফারের আকার এবং হেডার এবং ট্রেলার বিন্যাসের প্রকৃতি নিয়ন্ত্রণ করে।

নিম্নলিখিত বিবৃতি কম্প্রেস() ফাংশনের সাহায্যে একটি স্ট্রিং অবজেক্টকে সংকুচিত করে

>>> import zlib
>>> c = zlib.compress(b'hello python')
>>> c
b'x\x9c\xcbH\xcd\xc9\xc9W(\xa8,\xc9\xc8\xcf\x03\x00\x1e\xf0\x04\xd7'

যেখানে decompress() ফাংশন মূল পাইথন স্ট্রিং পুনরুদ্ধার করে।

>>> zlib.decompress(c)
b'hello python'

মডিউলটি কম্প্রেশন এবং ডিকম্প্রেশন অবজেক্টের দুটি সংশ্লিষ্ট শ্রেণির সংজ্ঞা নিয়ে গঠিত।

compressobj() − এই কনস্ট্রাক্টর ডেটা স্ট্রীম কম্প্রেস করতে ব্যবহার করা কম্প্রেশন অবজেক্ট ফিরিয়ে দেয়। এই বস্তুর দুটি গুরুত্বপূর্ণ পদ্ধতি হল

কম্প্রেস() − সংকুচিত বাইট অবজেক্ট ফেরত দেয়।

ফ্লাশ() − যেহেতু কম্প্রেশন অবজেক্ট স্ট্রিমগুলির সাথে ডিল করে, কিছু সংকুচিত ডেটা বাফারে থাকতে পারে। এই পদ্ধতিটি বাফার খালি করে।

নিম্নলিখিত উদাহরণটি কম্প্রেশন অবজেক্ট সেট আপ করে এবং কম্প্রেস() পদ্ধতির রিটার্ন ভ্যালুতে ফ্লাশ করা ডেটা যোগ করে একটি সংকুচিত ডেটা অবজেক্ট তৈরি করে।

>>> s1 = b'hello python'
>>> c = zlib.compressobj()
>>> s2 = c.compress(s1)
>>> s2 = s2+c.flush()
>>> s2
b'x\x9c\xcbH\xcd\xc9\xc9W(\xa8,\xc9\xc8\xcf\x03\x00\x1e\xf0\x04\xd7'

decompressobj() - এটি ডিকম্প্রেশন অবজেক্টের কনস্ট্রাক্টর হিসাবে কাজ করে যা স্ট্রীম থেকে বড় ডেটা ডিকম্প্রেস করে। এই বস্তুটি নিম্নলিখিত পদ্ধতিগুলি প্রদান করে

ডিকম্প্রেস() − এই পদ্ধতিটি আনকম্প্রেসড ডেটা ফেরত দেয়

ফ্লাশ() − এই পদ্ধতিটি বাফার খালি করে।

নিম্নলিখিত কোড পূর্ববর্তী উদাহরণে তৈরি বাইট অবজেক্ট থেকে অসঙ্কোচিত ডেটা পুনরুদ্ধার করে

>>> d = zlib.decompressobj()
>>> x = d.decompress(s2)
>>> x = x+d.flush()
>>> x
b'hello python'

zlib মডিউলে দুটি ধ্রুবক সংজ্ঞায়িত করা হয়েছে যা ব্যবহার করা zlib লাইব্রেরির সংস্করণ তথ্য প্রদান করে।

>>> zlib.ZLIB_VERSION
'1.2.11'
>>> zlib.ZLIB_RUNTIME_VERSION
'1.2.11'

  1. পাইথনে আবর্জনা সংগ্রহ

  2. পাইথনে জিজিপের সাথে সামঞ্জস্যপূর্ণ সংকোচন (zlib)

  3. পাইথন দুর্বল রেফারেন্স

  4. পাইথনে একটি TimeTuple কি?