কম্পিউটার

Bzip2 কম্প্রেশন (bz2) এর জন্য পাইথন সমর্থন


bzip2 ফাইলের কম্প্রেশন এবং ডিকম্প্রেশনের জন্য একটি ওপেন সোর্স অ্যালগরিদম। পাইথনের bz2 মডিউলটি প্রোগ্রামগতভাবে bzip2 অ্যালগরিদম বাস্তবায়নের কার্যকারিতা প্রদান করে।

open() ফাংশন হল এই মডিউলের প্রাথমিক ইন্টারফেস।

খোলা()

এই ফাংশনটি একটি bzip2 সংকুচিত ফাইল খোলে এবং একটি ফাইল অবজেক্ট রিটার্ন করে। ফাইলটি রিড/রাইটের অনুমতি নিয়ে বাইনারি/টেক্সট মোড হিসাবে খোলা যেতে পারে। ফাংশনটি 1 থেকে 9 এর মধ্যে কম্প্রেশন লেভেল আর্গুমেন্টের উপর ভিত্তি করে কম্প্রেশন করে।

লিখুন()

যখন ফাইলটি 'w' বা 'wb' মোডে খোলা হয়, এই ফাংশনটি ফাইল অবজেক্টে উপলব্ধ হয়। বাইনারি মোডে, এটি ফাইলে সংকুচিত বাইনারি ডেটা লেখে। সাধারণ পাঠ্য মোডে, এনকোডিং সম্পাদন করতে ফাইল অবজেক্টটি TetIOWrapper অবজেক্টে মোড়ানো হয়।

পড়ুন() − যখন রিড মোডে খোলা হয়, তখন এই ফাংশনটি এটি পড়ে এবং অসংকুচিত ডেটা ফেরত দেয়৷

নিম্নলিখিত কোড একটি bzip2 ফাইলে সংকুচিত ডেটা লেখে।

>>> f = bz2.open("test.bz2", "wb")
>>> data = b'Welcome to TutorialsPoint'
>>> f.write(data)
>>> f.close()

এটি বর্তমান ডিরেক্টরিতে test.bz2 ফাইল তৈরি করবে। যেকোনো আনজিপিং টুল এতে একটি 'টেস্ট' ফাইল দেখাবে। এই test.bz2 ফাইল থেকে সংকুচিত ডেটা পড়তে নিম্নলিখিত কোড ব্যবহার করুন।

>>> f = bz2.open("test.bz2", "rb")
>>> data=f.read()
>>> data
b'Welcome to TutorialsPoint'

bz2 মডিউল BZ2File ক্লাসকেও সংজ্ঞায়িত করে। এর অবজেক্ট কনস্ট্রাক্টরের মোড প্যারামিটারের উপর নির্ভর করে কম্প্রেসার এবং ডিকম্প্রেসার হিসাবে কাজ করে।

BZ2File()

এই কনস্ট্রাক্টর. open() ফাংশনের মতো, ফাইল এবং মোড পরামিতি প্রয়োজন। কম্প্রেশন লেভেল ডিফল্টরূপে 9 এবং 1 থেকে 9 এর মধ্যে হতে পারে।

BZ2Compressor()

এই ফাংশন ইনক্রিমেন্টাল কম্প্রেসার ক্লাসের অবজেক্ট রিটার্ন করে। এই ক্লাসের কম্প্রেস() পদ্ধতিতে প্রতিটি কল সংকুচিত ডেটার একটি অংশ প্রদান করে। একাধিক খণ্ড একত্রে সংযুক্ত করা যেতে পারে এবং অবশেষে bzip2 কম্প্রেশন ফাইলে লেখা যেতে পারে।

ফ্লাশ()

এই পদ্ধতিটি বাফার খালি করে এবং সংকুচিত বস্তুতে যুক্ত করার জন্য এতে থাকা ডেটার অংশ ফেরত দেয়।

BZ2Decompressor()

এই ফাংশন ইনক্রিমেন্টাল ডিকম্প্রেসার অবজেক্ট রিটার্ন করে। ডিকম্প্রেসড ডেটার পৃথক চিঙ্কগুলি ফ্লুডড ডেটার সাথে একত্রে সংকুচিত ডেটা গঠন করে।

নিম্নলিখিত উদাহরণটি প্রথমে তালিকা অবজেক্টের প্রতিটি iem কম্প্রেস করে এবং ফাইলে সংযুক্ত বাইট অবজেক্ট লিখে। BZ2Decompressor অবজেক্ট দ্বারা ডেটা পুনরুদ্ধার করা হয়।

>>> data = [b'Hello World', b'How are you?', b'welcome to Python']
>>> obj = bz2.BZ2Compressor()
>>> f = bz2.open("test.bz2", "wb")
>>> d1 = obj.compress(data[0])
>>> d2 = obj.compress(data[1])
>>> d3 = obj.compress(data[2])
>>> d4 = obj.flush()
>>> d1,d2,d3,d4
(b'', b'', b'', b'BZh91AY&SYS\x9a~\x99\x00\x00\x03\x1f\x80@\x00\x00\x00\x80@@\x80.G\x96\xa0 \x00!\xa8\xd0\x06\x9a6\x90\xa6LL\x83#\x18\x1d\x83\xee^]\x1e|\xa9\xddgu\x15G/\x1a\x8c\xd1\x90\x14\x8f\x8b\xb9"\x9c(H)\xcd?L\x80')
>>> compressedobj=d1+d2+d3+d4
>>> f.write(compressedobj)
>>> f.close()
>>> obj=bz2.BZ2DeCompressor()
>>> f=bz2.open("test.bz2", "rb")
>>> data=f.read()
>>> obj.decompress(data)
b'Hello WorldHow are you?welcome to Python'

  1. পাইথনে ফাইল অবজেক্ট?

  2. পাইথন ব্যবহার করে বেস64 ডেটা এনকোডিং

  3. পিসির জন্য শীর্ষ 6 ফাইল স্থানান্তর অ্যাপ

  4. উইন্ডোজের জন্য 15টি সেরা ফাইল কম্প্রেশন টুল