কম্পিউটার

জিজিপ ফাইলের জন্য পাইথন সমর্থন (জিজিপ)


GZip অ্যাপ্লিকেশনটি ফাইলের কম্প্রেশন এবং ডিকম্প্রেশনের জন্য ব্যবহৃত হয়। এটি GNU প্রকল্পের একটি অংশ। পাইথনের জিজিপ মডিউল হল জিজিপ অ্যাপ্লিকেশনের ইন্টারফেস। জিজিপ ডেটা কম্প্রেশন অ্যালগরিদম নিজেই zlib মডিউলের উপর ভিত্তি করে।

Gzip মডিউলটিতে GzipFile ক্লাসের সংজ্ঞা এবং এর পদ্ধতি রয়েছে। এটিতে সুবিধার ফাংশন open(), কম্প্রেস() এবং ডিকম্প্রেস()ও রয়েছে।

কম্প্রেশন এবং ডিকম্প্রেশন অর্জনের সবচেয়ে সহজ উপায় হল উপরে উল্লিখিত ফাংশনগুলি ব্যবহার করা।

খোলা()

এই ফাংশনটি বাইনারি বা টেক্সট মোডে একটি জিজিপ-সংকুচিত ফাইল খোলে এবং অবজেক্টের মতো একটি ফাইল রিটার্ন করে, যা ফিজিক্যাল ফাইল, স্ট্রিং বা বাইট অবজেক্ট হতে পারে। ডিফল্টরূপে, ফাইলটি 'rb' মোডে খোলা হয় অর্থাৎ বাইনারি ডেটা পড়া, যাইহোক, এই ফাংশনের মোড প্যারামিটার নীচে তালিকাভুক্ত অন্যান্য মোড নিতে পারে৷

বাইনারী মোড:'r', 'rb', 'a', 'ab', 'w', 'wb', 'x', 'xb'টেক্সট মোড :'rt', 'at', 'wt' ', অথবা 'xt'

এই ফাংশনটি কম্প্রেশন লেভেলকেও সংজ্ঞায়িত করে যার গ্রহণযোগ্য মান 0 থেকে 9 এর মধ্যে। যখন ফাইলটি টেক্সট মোডে খোলা হয়, তখন GzipFile অবজেক্টটি TextIOWrapper অবজেক্টে মোড়ানো হয়।

কম্প্রেস()

এই ফাংশনটি আর্গুমেন্ট হিসাবে প্রদত্ত ডেটাতে কম্প্রেশন প্রয়োগ করে এবং কম্প্রেস বাইট অবজেক্ট প্রদান করে। ডিফল্ট কম্প্রেশন লেভেল হল 9.

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

এই ফাংশনটি বাইট অবজেক্টকে ডিকম্প্রেস করে এবং আনকম্প্রেসড ডেটা ফেরত দেয়।

নিম্নোক্ত উদাহরণে সংকুচিত ডেটা লিখে একটি জিজিপ ফাইল তৈরি করে।

>>> gzip আমদানি করুন>>> ডেটা =b'Python - ব্যাটারি অন্তর্ভুক্ত'>>> f:f.write(data) হিসেবে gzip.open("test.txt.gz", "wb") সহ 

এটি বর্তমান ডিরেক্টরিতে "test.txt.gz" ফাইল তৈরি করবে। এই জিজিপ সংরক্ষণাগারটিতে "test.txt" রয়েছে যা আপনি যেকোনো আনজিপিং ইউটিলিটি ব্যবহার করে যাচাই করতে পারেন।

প্রোগ্রাম্যাটিকভাবে এই সংকুচিত ফাইলটি পড়তে

>>> gzip.open("test.txt.gz", "rb") দিয়ে f:data =f.read()>>> datab'Python - ব্যাটারি অন্তর্ভুক্ত'

একটি জিজিপ সংরক্ষণাগারে একটি বিদ্যমান ফাইল সংকুচিত করতে, এতে পাঠ্য পড়ুন এবং এটিকে একটি বাইটেয়ারে রূপান্তর করুন। এই bytearray অবজেক্ট তারপর একটি gzip ফাইল লেখা হয়. নীচের উদাহরণে, 'zen.txt' ফাইলটিকে বর্তমান ডিরেক্টরিতে উপস্থিত বলে ধরে নেওয়া হয়৷

fp =open("zen.txt","rb")>>> data =fp.read()>>> bindata =bytearray(data)>>> gzip.open("zen.txt.gz) সহ ", "wb") f:f.write(bindata)
হিসেবে

জিজিপ আর্কাইভ থেকে আনকম্প্রেসড ফাইল পুনরুদ্ধার করতে

>>> fp =open("zen1.txt", "wb")>>> f:bindata =f.read() হিসাবে gzip.open("zen.txt.gz", "rb") সহ>>> fp.write(bindata)>>> fp.close()

উপরের কোডটি বর্তমান ডিরেক্টরিতে 'zen1.txt' তৈরি করবে যাতে 'zen.txt'

এর মতো একই ডেটা থাকে

এই সুবিধার ফাংশনগুলি ছাড়াও, gzip মডিউলের GzipFile ক্লাস রয়েছে যা কম্প্রেস() এবং ডিকম্প্রেস() পদ্ধতিগুলিকে সংজ্ঞায়িত করে। এই ক্লাসের কনস্ট্রাক্টর ফাইল, মোড এবং কম্প্রেশন লেভেল আর্গুমেন্টগুলি ঠিক উপরের মত একই অর্থের সাথে নেয়।

যখন মোড প্যারামিটারটি 'w' বা 'wb' বা 'wt' হিসাবে দেওয়া হয়, GipFile অবজেক্ট প্রদত্ত ডেটা সংকুচিত করতে এবং একটি gzip ফাইলে লেখার জন্য write() পদ্ধতি প্রদান করবে।

>>> f =gzip.GzipFile("testnew.txt.gz","wb")>>> data =b'Python - Batteries include'>>> f.write(data)>>> f. বন্ধ()

এটি একটি testnew.txt.gz ফাইল তৈরি করবে। আপনি যেকোন ইউটিলিটি ব্যবহার করে এটিকে আনজিপ করে দেখতে পারেন যে এতে testnew.txt আছে এবং এতে ‘Python – Batteries include’ লেখা রয়েছে।

GzipFile অবজেক্ট ব্যবহার করে gzip ফাইলকে আনকম্প্রেস করতে, এটিকে 'rb' মান দিয়ে মোড প্যারামিটার তৈরি করুন এবং read() পদ্ধতিতে uncompressed ডেটা পড়ুন

>>> f =gzip.GzipFile("testnew.txt.gz","rb")>>> data =f.read()>>> datab'Python - ব্যাটারি অন্তর্ভুক্ত'

এই নিবন্ধে আমরা শিখেছি কিভাবে Gzip লাইব্রেরি Python এর gzip মডিউল দ্বারা প্রয়োগ করা যেতে পারে।


  1. পাইথনে পরিসংখ্যানগত চিন্তাভাবনা

  2. পাইথনে জালিয়াতি সনাক্তকরণ

  3. পাইথনে সেন্সাস ডেটা বিশ্লেষণ করা হচ্ছে

  4. QuickSort-এর জন্য পাইথন প্রোগ্রাম