পাইথনের স্ট্যান্ডার্ড লাইব্রেরিতে, জিপফাইল নামে একটি মডিউল রয়েছে। এই মডিউলটি ব্যবহার করে, আমরা একটি জিপ ফাইলে বিভিন্ন অপারেশন করতে পারি।
জিপ ফাইলগুলি সংরক্ষণাগার ফাইল বিন্যাস। জিপ ফাইলগুলি কম ডেটা কম্প্রেশন বৈশিষ্ট্যগুলি পেতে ব্যবহার করা হয়, তাই সংকুচিত ফর্ম থেকে, এটি পুরোপুরি পুনর্গঠন করা যেতে পারে। একটি জিপ ফাইল এটিতে এক বা একাধিক সংকুচিত ফাইল ধারণ করতে পারে৷
জিপ ফাইলগুলির ভাল বৈশিষ্ট্য হল, এটি স্টোরেজ প্রয়োজনীয়তা হ্রাস করে এবং স্ট্যান্ডার্ড সংযোগগুলির উপর গতি স্থানান্তর করে।
পাইথনে জিপ ফাইল ব্যবহার করার জন্য আমাদের জিপফাইল মডিউল আমদানি করতে হবে।
from zipfile import ZipFile
প্রথমে আমরা দেখব কিভাবে একটি ডিরেক্টরি থেকে Zip ফাইল তৈরি করা যায়। এই ক্ষেত্রে, প্রধান ডিরেক্টরি একটি ফাইল এবং কিছু অন্যান্য ডিরেক্টরি ধারণ করে।
তাই প্রথমে, আমাদের সমস্ত ফাইল এবং ফোল্ডারগুলি পেতে এবং পাথগুলিকে একটি তালিকা হিসাবে সংরক্ষণ করতে পুরো ডিরেক্টরিটি ক্রল করতে হবে। তারপর লিখুন মোড হিসাবে Zip ফাইল খুলুন, এবং সঞ্চিত পাথ থেকে সব লিখুন.
উদাহরণ কোড
#Get all files from directory and subdirectories and convert to zip from zipfile import ZipFile import os defget_all_files(directory): #function to get all files from directory paths = [] for root, dirs, files in os.walk(directory): for f_name in files: path = os.path.join(root, f_name) #get a file and add the total path paths.append(path) return paths #Return the file paths directory = './sample_files' paths = get_all_files(directory) #Display the filenames print('The following files will be stored in the zip file') for file in paths: print(file) #Open zip file as write mode to create zip with ZipFile('my_files.zip', 'w') as zf: for file in paths: zf.write(file) print('Zip is created Successfully')
আউটপুট
The following files will be stored in the zip file ./sample_files\TP_python_prev.pdf ./sample_files\text_files\file1.txt ./sample_files\text_files\file2.txt Zip is created Successfully
এখন দেখুন, কিভাবে zipfile মডিউল ব্যবহার করে zip ফাইলগুলো বের করা যায়। একটি জিপ বের করতে, প্রথমে, আমাদের জিপ ফাইলটিকে পড়ুন হিসাবে খুলতে হবে মোড, এবং তারপর বিষয়বস্তু নিষ্কাশন করতে extract() বা extractall() পদ্ধতি ব্যবহার করুন। এক্সট্রাক্ট() পদ্ধতিটি জিপ ফাইল থেকে এক্সট্রাক্ট করার জন্য ফাইলটি সনাক্ত করার জন্য একটি পথ নেয়।
উদাহরণ কোড
#Extract the zip files from zipfile import ZipFile zip_file = 'my_files.zip' with ZipFile(zip_file, 'r') as zf: #display the files inside the zip zf.printdir() #Extracting the files from zip file zf.extractall() print('Zip Extraction Completed')
আউটপুট
File Name Modified Sizesample_files/TP_python_prev.pdf 2018-10-19 13:19:48 1915882sample_files/text_files/file1.txt 2018-11-06 13:34:46 22sample_files/text_files/file2.txt 2018-11-06 13:35:02 24Zip Extraction Completed
এখন, আমরা জিপফাইল মডিউলের infolist() পদ্ধতি সম্পর্কে আলোচনা করব। এটি ফাইলের নাম, পরিবর্তনের তারিখ, ফাইলের আকার ইত্যাদির মতো বিভিন্ন তথ্যের একটি তালিকা প্রদান করে।
উদাহরণ কোড
#Get information about the zip file from zipfile import ZipFile import datetime zip_file = 'my_files.zip' with ZipFile(zip_file, 'r') as zf: for detail in zf.infolist(): print('File Name: ' + detail.filename) print('\tModify Date: ' + str(datetime.datetime(*detail.date_time))) print('\tZip Version: ' + str(detail.create_version)) print('\tSystem Version: ' + str(detail.create_system)) #0 for windows print('\tFile Size (Bytes): ' + str(detail.file_size))
আউটপুট
File Name: sample_files/TP_python_prev.pdf Modify Date: 2018-10-19 13:19:48 Zip Version: 20 System Version: 0 File Size (Bytes): 1915882File Name: sample_files/text_files/file1.txt Modify Date: 2018-11-06 13:34:46 Zip Version: 20 System Version: 0 File Size (Bytes): 22File Name: sample_files/text_files/file2.txt Modify Date: 2018-11-06 13:35:02 Zip Version: 20 System Version: 0 File Size (Bytes): 24