কম্পিউটার

পাইথন (টারফাইল) ব্যবহার করে টার সংরক্ষণাগার ফাইলগুলি পড়ুন এবং লিখুন


'tar' ইউটিলিটিটি মূলত ইউনিক্স অপারেটিং সিস্টেমের জন্য চালু করা হয়েছিল। এর উদ্দেশ্য হল একটি একক আর্কাইভ ফাইলে একাধিক ফাইল সংগ্রহ করা যাকে প্রায়ই টারবল বলা হয় যা ফাইলগুলিকে বিতরণ করা সহজ করে তোলে। পাইথনের স্ট্যান্ডার্ড লাইব্রেরির টারফাইল মডিউলের কাজগুলি টার আর্কাইভ তৈরি করতে এবং প্রয়োজনে টারবল থেকে বের করতে সাহায্য করে। আর্কাইভগুলি gzip, bz2 এবং lzma কম্প্রেশন দিয়ে বা একেবারেই কম্প্রেশন ছাড়াই তৈরি করা যেতে পারে।

এই মডিউলে সংজ্ঞায়িত প্রধান ফাংশন হল main() যা ব্যবহার করে tar ফাইলে লেখা বা এটি থেকে পড়া সম্পন্ন করা হয়।

খোলা()

এই ফাংশনটি ফাইলের নামের সাথে সম্পর্কিত একটি TarFile অবজেক্ট ফেরত দেয় যা এটিকে প্যারামিটার হিসাবে দেওয়া হয়। ফাংশনের জন্য মোড নামক আরেকটি প্যারামিটার প্রয়োজন, যা ডিফল্টরূপে 'r' কোনো সংকোচন নির্দেশ করে না। অন্যান্য মোড নীচে তালিকাভুক্ত করা হয়েছে

Sr. No. মোড এবং অ্যাকশন
1 'r' বা 'r:*'
স্বচ্ছ কম্প্রেশন সঙ্গে পড়ার জন্য খুলুন.
2 'r:'
কম্প্রেশন ছাড়া পড়ার জন্য খুলুন।
3 'r:gz'
Gzip কম্প্রেশন দিয়ে পড়ার জন্য খুলুন।
4 'r:bz2'
bzip2 কম্প্রেশন দিয়ে পড়ার জন্য খুলুন।
5 'r:xz'
Lzma কম্প্রেশন দিয়ে পড়ার জন্য খুলুন।
6 'x' বা 'x:'
কম্প্রেশন ছাড়াই একচেটিয়াভাবে একটি টারফাইল তৈরি করুন।
7 'x:gz'
জিজিপ কম্প্রেশন দিয়ে একটি টারফাইল তৈরি করুন।
8 'x:bz2'
bzip2 কম্প্রেশন দিয়ে একটি টারফাইল তৈরি করুন।
9 'x:xz'
Lzma কম্প্রেশন দিয়ে একটি টারফাইল তৈরি করুন।
10 'a' বা 'a:'
কোন কম্প্রেশন ছাড়া সংযুক্ত করার জন্য খুলুন.
11 'w' বা 'w:'
সংকুচিত লেখার জন্য খুলুন।
12 'w:gz'
Gzip সংকুচিত লেখার জন্য খুলুন।
13 'w:bz2'
bzip2 সংকুচিত লেখার জন্য খুলুন।
14 'w:xz'
Lzma সংকুচিত লেখার জন্য খুলুন।

মডিউল TarFile ক্লাস সংজ্ঞায়িত করে। open() ফাংশনের পরিবর্তে, টারফাইল অবজেক্টকে কনস্ট্রাক্টর কল করে ইনস্ট্যান্ট করা যেতে পারে।

টারফাইল()

এই কনস্ট্রাক্টরের একটি ফাইলের নাম এবং মোড পরামিতি প্রয়োজন। মোড প্যারামিটারের সম্ভাব্য মান উপরের মত।

এই ক্লাসের অন্যান্য পদ্ধতিগুলি নিম্নরূপ

যোগ করুন()

এই পদ্ধতিটি সংরক্ষণাগারে একটি ফাইল যোগ করে। পদ্ধতিটির জন্য একটি নাম প্রয়োজন যা ফাইল, ডিরেক্টরি, প্রতীকী লিঙ্ক, শর্টকাট ইত্যাদির নাম হতে পারে। ডিফল্টরূপে ডিরেক্টরিগুলি পুনরাবৃত্তভাবে যোগ করা হয়। পুনরাবৃত্ত সংযোজন রোধ করতে রিকার্সিভ প্যারামিটারকে ফলসে সেট করুন।

অ্যাডফাইল()

এই পদ্ধতিটি সংরক্ষণাগারে TarInfo অবজেক্ট যোগ করে।

extractall()

এই পদ্ধতিটি আর্কাইভের সমস্ত সদস্যকে বর্তমান পাথে বের করে দেয় যদি অন্য কোন পাথ স্পষ্টভাবে প্রদান করা না হয়।

extract()

এই পদ্ধতিটি নির্দিষ্ট সদস্যকে প্রদত্ত পাথে এক্সট্র্যাক্ট করে, ডিফল্ট হল বর্তমান পাথ।

নিম্নলিখিত উদাহরণটি জিজিপ অ্যালগরিদমের সাথে কম্প্রেশনের জন্য একটি টার ফাইল খোলে এবং এতে একটি ফাইল যোগ করে৷

>>> fp = tarfile.open("zen.tar.gz","w:gz")
>>> fp.add("zen.txt")
>>> fp.close()

ধরে নিলাম যে 'zen.txt' ফাইলটি বর্তমান কার্যকারী ডিরেক্টরিতে উপস্থিত রয়েছে, এটি 'zen.tar.gz' ফাইলে যোগ করা হবে।

নিম্নলিখিত কোডটি টার আর্কাইভ থেকে ফাইলগুলি বের করে এবং সমস্ত ফাইল (এই ক্ষেত্রে শুধুমাত্র চালু আছে) বের করে এবং বর্তমান ফোল্ডারে রাখে। ফলাফল যাচাই করতে, আপনি বর্তমান ফোল্ডারে 'zen.txt' মুছে দিতে বা পুনঃনামকরণ করতে পারেন।

>>> fp = tarfile.open("zen.tar.gz","r:gz")
>>> fp.extractall()
>>> fp.close()

আপনি দেখতে পাবেন যে 'zen.txt' ফাইলটি বর্তমান ডিরেক্টরিতে উপস্থিত হবে।

বর্তমান ডিরেক্টরির সমস্ত ফাইল সমন্বিত একটি টার তৈরি করতে, নিম্নলিখিত কোড ব্যবহার করুন

import tarfile, glob
>>> fp=tarfile.open('file.tar','w')
>>> for file in glob.glob('*.*'):
fp.add(file)
>>> fp.close()

কমান্ড লাইন ইন্টারফেস

টার ফাইল তৈরি এবং নিষ্কাশন কমান্ড লাইন ইন্টারফেসের মাধ্যমে অর্জন করা যেতে পারে। যেমন 'lines.txt' ফাইলটি কমান্ড উইন্ডোতে কার্যকর করা কমান্ড অনুসরণ করে একটি tar ফাইলে যোগ করা হয়

C:\python36 >python -m tarfile -c line.tar lines.txt

নিম্নলিখিত কমান্ড লাইন বিকল্পগুলি ব্যবহার করা যেতে পারে৷

-l বা --list একটি টারফাইলে ফাইল তালিকাভুক্ত করুন।
-c বা --create সোর্স ফাইল থেকে টারফাইল তৈরি করুন।
-e বা --extract আউটপুট_ডির নির্দিষ্ট না থাকলে বর্তমান ডিরেক্টরিতে টারফাইল বের করুন।
-t অথবা --test টরফাইলটি বৈধ কি না তা পরীক্ষা করুন৷
-v বা --verbose ভার্বোস আউটপুট।

নিম্নলিখিত কমান্ড লাইন বর্তমান ডিরেক্টরির অধীনে newdir ফোল্ডারে line.tar বের করবে।

C:\python36>python -m tarfile -e line.tar newdir/

নিম্নলিখিত কমান্ড লাইনটি টার আর্কাইভে সমস্ত ফাইল তালিকাভুক্ত করবে।

C:\python36>python -m tarfile -l files.tar

টারফাইল মডিউলের এই নিবন্ধটি এতে সংজ্ঞায়িত ক্লাস এবং ফাংশনগুলি ব্যাখ্যা করেছে৷


  1. পাইথনে xlsxwriter মডিউল ব্যবহার করে এক্সেল ফাইল তৈরি করুন এবং লিখুন

  2. পাইথন openpyxl মডিউল ব্যবহার করে একটি এক্সেল ফাইল পড়ুন এবং লিখুন

  3. লিনাক্সে TAR ব্যবহার করে ফাইলগুলি কীভাবে সংরক্ষণ করবেন

  4. পাইথন রিড রাইট CSV ফাইল