কম্পিউটার

পাইথনে ZIPFILE মডিউল দিয়ে ফাইলগুলি কীভাবে সংকুচিত করবেন।


সমস্যা

আপনি পাইথনে একটি কম্প্রেস ফাইল তৈরি করতে চান।

পরিচয়

ZIP ফাইলগুলি অন্যান্য অনেক ফাইলের সংকুচিত বিষয়বস্তু ধরে রাখতে পারে। একটি ফাইল কম্প্রেস করলে ডিস্কে এর আকার কমে যায়, যা ইন্টারনেটে বা Control-m AFT বা Connect ডাইরেক্ট বা এমনকি scp ব্যবহার করে সিস্টেমের মধ্যে স্থানান্তর করার সময় দরকারী।

পাইথন প্রোগ্রাম জিপ ফাইল মডিউলের ফাংশন ব্যবহার করে জিপ ফাইল তৈরি করে।

কিভাবে করবেন...

1. আমরা zipfile এবং io প্যাকেজ ব্যবহার করব। আপনার সিস্টেমে কোনো প্যাকেজ অনুপস্থিত থাকলে সেগুলোকে পিপ দিয়ে ইনস্টল করুন। আপনি যদি অনিশ্চিত হন, প্যাকেজগুলি যাচাই করতে পিপ ফ্রিজ কমান্ড ব্যবহার করুন৷

2. একটি ফাইলে নমুনা ডেটা লেখার জন্য আমরা একটি ফাংশন লিখব। নিচের ফাংশন write_data_to_files ইনপুট হিসাবে ডেটা গ্রহণ করে এবং বর্তমান ডিরেক্টরির নামে একটি ফাইল তৈরি করে।

উদাহরণ

# ফাংশন :write_data_to_filesdef write_data_to_files(inp_data, file_name):"""ফাংশন :এই কোডার্ডে পাস করা ডেটা দিয়ে একটি csv ফাইল তৈরি করুন :inp_data :ডেটা টার্গেট ফাইলফাইল_নাম এ লেখা হবে :ডেটা রিটার্ন সংরক্ষণ করতে লক্ষ্য ফাইলের নাম :noneassumption :ফাইল তৈরি করা হবে এবং এই কোডটি একই ডিরেক্টরিতে রয়েছে।""""প্রিন্ট(f" *** ডেটা লেখা হচ্ছে - {file_name}")throwaway_storage =io.StringIO(inp_data) ওপেন (file_name, 'w') সহ ) হিসেবে f:for line in throwaway_storage:f.write(line)

3. উপরের ধাপে তৈরি করা ফাইলগুলিকে জিপ করতে আমরা এখন একটি ফাংশন file_compress লিখব। এই ফাংশন ফাইলগুলির তালিকা গ্রহণ করে, সেগুলির মধ্য দিয়ে যান এবং এটিকে একটি জিপ ফাইলে সংকুচিত করুন৷ প্রতিটি ধাপের বিস্তারিত ব্যাখ্যা মন্তব্যে দেওয়া আছে।

আপনার নিজের সংকুচিত জিপ ফাইলগুলি তৈরি করতে, আপনাকে দ্বিতীয় আর্গুমেন্ট হিসাবে 'w' পাস করে লিখতে মোডে ZipFile অবজেক্ট খুলতে হবে।

যখন আপনি একটি ZipFile অবজেক্টের write() পদ্ধতিতে একটি পাথ পাস করেন, পাইথন সেই পাথে ফাইলটিকে সংকুচিত করবে এবং জিপ ফাইলে যোগ করবে।

write() পদ্ধতির প্রথম আর্গুমেন্ট হল ফাইলের নামের একটি স্ট্রিং যোগ করার জন্য।

দ্বিতীয় যুক্তিটি হল কম্প্রেশন টাইপ প্যারামিটার - যা কম্পিউটারকে বলে যে ফাইলগুলিকে কম্প্রেস করতে কোন অ্যালগরিদম ব্যবহার করা উচিত৷

উদাহরণ

# ফাংশন :file_compressdef file_compress(inp_file_names, out_zip_file):"""ফাংশন :file_compressargs :inp_file_names :zippedout_zip_file হতে হবে এমন ফাইলের নামের তালিকা :আউটপুট জিপ ফাইল রিটার্ন :noneassumption :এই ফাইলটি "এবং ইনপুট একই ডিরেক্টরি"। # কম্প্রেশন # বা zipfile এর জন্য কম্প্রেশন মোড ZIP_DEFLATED নির্বাচন করুন। শুধুমাত্র ফাইল কম্প্রেশন সংরক্ষণ করতে ZIP_STORED =zipfile.ZIP_DEFLATEDprint(f" *** জিপিংয়ের জন্য পাস করা ইনপুট ফাইলের নাম - {inp_file_names}")# জিপ ফাইলটি প্রথম প্যারামিটার পাথ/নাম তৈরি করুন , দ্বিতীয় মোডপ্রিন্ট(f' *** out_zip_file is - {out_zip_file}')zf =zipfile.ZipFile(out_zip_file, mode="w")try:for file_to_write inp_file_names:# জিপ ফাইলে ফাইল যোগ করুন# প্রথম প্যারামিটার ফাইলে zip, zipprint-এ দ্বিতীয় ফাইলের নাম e}') অবশেষে:# ফাইলটি বন্ধ করতে ভুলবেন না!zf.close()

4. আমরা দুটি csv ফাইল তৈরি করার জন্য ফাংশনগুলিকে কল করব এবং তারপর সেগুলিকে জিপ করব৷ আমরা টেনিস খেলোয়াড়দের ডেটা ব্যবহার করব যারা একটি ফাইলে 1টির বেশি গ্র্যান্ডস্ল্যাম খেতাব জিতেছে - temporary_file1_for_zip.csv এবং টেনিস খেলোয়াড় যারা অন্য একটি ফাইল temporary_file1_for_zip.csv-এ 1টি গ্র্যান্ডস্লামের কম বা সমান জিতেছে। তারপর আমরা এই দুটি ফাইলকে temporary.zip ফাইলে জিপ করব।

উদাহরণ

pdfile_name1 ="temporary_file1_for_zip.csv"file_name2 ="temporary_file2_for_zip.csv"file_name_list =[file_name1, file_name2]zip_file_name1, file_name2]zip_file_name ="zip_file_name =" zip_file_name, "#1 টেম্পার ডেটার জন্য, "#1 টেম্পার ডাটা। ,20Djokovic,17Murray,3"""# ফাইলের জন্য ডেটা 2file_data_2 ="""player,titlesTheim,1Zverev,0Medvedev,0Rublev,0"""# ফাইল_ডেটা লিখুন file_namewrite_data_to_files(file_namewrite_data_to_files(file_name_data_2,file_data_2) zip_file_namefile_compress(file_name_list, zip_file_name) এ ফাইল_নাম জিপ করুন

উদাহরণ

5. উপরের ধাপে আলোচনা করা সবকিছু একসাথে রাখা।

# ডেটা সংজ্ঞায়িত করুন# আসুন পিডি হিসাবে একটি ফাইল ইমপোর্ট zipfileimport ioimport pandas দিয়ে একটি জিপ ফাইল তৈরি করি। :inp_data :টার্গেট ফাইলফাইল_নামে ডেটা লিখতে হবে :ডেটা রিটার্ন সংরক্ষণ করার জন্য টার্গেট ফাইলের নাম :noneassumption :ফাইল তৈরি করতে হবে এবং এই কোডটি একই ডিরেক্টরিতে রয়েছে।""""print(f" *** এতে ডেটা লেখা হচ্ছে - { file_name}")throwaway_storage =io.StringIO(inp_data) open(file_name, 'w') সহ f:for line in throwaway_storage:f.write(line)# ফাংশন :file_compressdef file_compress(inp_file_names, out_zip_file):"""function :file_compressargs :inp_file_names :zippedout_zip_file ফাইলের নামের তালিকা :আউটপুট জিপ ফাইল রিটার্ন :noneassumption :ইনপুট ফাইল পাথ এবং এই কোডটি একই ডিরেক্টরিতে রয়েছে৷"""# কম্প্রেশনের জন্য কম্প্রেশন মোড ZIP_DEFLATED নির্বাচন করুন # বা zipfile. শুধু ফাইলটি ZIP_S সংরক্ষণ করতে কম্প্রেশন করুন =zipfile.ZIP_DEFLA TEDprint(f" *** ইনপুট ফাইলের নাম জিপ করার জন্য পাস করা হয়েছে - {inp_file_names}")# জিপ ফাইলটি প্রথম প্যারামিটার পাথ/নাম তৈরি করুন, দ্বিতীয় মোডপ্রিন্ট (f' *** out_zip_file is - {out_zip_file}')zf =zipfile। ZipFile(out_zip_file, mode="w")try:for file_to_write inp_file_names:# জিপ ফাইলে ফাইল যোগ করুন# জিপ করার জন্য প্রথম প্যারামিটার ফাইল, জিপপ্রিন্টে দ্বিতীয় ফাইলের নাম(f' *** প্রসেসিং ফাইল {file_to_write}')zf। write(file_to_write, file_to_write, compress_type=compression) FileNotFoundError ব্যতীত e:print(f' *** জিপ প্রক্রিয়া চলাকালীন ব্যতিক্রম ঘটেছে - {e}') অবশেষে:# ফাইলটি বন্ধ করতে ভুলবেন না!zf.close() # __main__ programif __name__ =='__main__':# আপনার ফাইলের নাম এবং datafile_name1 সংজ্ঞায়িত করুন ="temporary_file1_for_zip.csv"file_name2 ="temporary_file2_for_zip.csv"file_name_list =[file_name1, file_name_list =[file_name1, file_name2]" zip_file_name ="zip_file2] "tamp_file2]" ,titlesFederer,20Nadal,20Djokovic,17Murray,3"""file_data_2 ="""খেলোয়াড়,titlesTheim,1Zverev,0Medvedev,0Rublev,0"""# ফাইল_ডেটা লিখুন ফাইল_নাম লিখুন_ডি ata_to_files(file_data_1, file_name1)write_data_to_files(file_data_2, file_name2)# zip_file_namefile_compress(file_name_list, zip_file_name) এ ফাইল_নাম জিপ করুন
*** ডেটা লেখা হচ্ছে - temporary_file1_for_zip.csv***-এ ডেটা লেখা হচ্ছে - temporary_file2_for_zip.csv**** ইনপুট ফাইলের নাম জিপ করার জন্য পাস করা হয়েছে - ['temporary_file1_for_zip.csv', 'temporary_file2_v'zip.**] * out_zip_file হল - temporary.zip *** প্রসেসিং ফাইল temporary_file1_for_zip.csv**** প্রসেসিং ফাইল temporary_file2_for_zip.csv

আউটপুট

যখন উপরের কোডটি কার্যকর করা হয়, তখন আউটপুট হয়

  • temporary_file1_for_zip.csv বর্তমান ডিরেক্টরিতে তৈরি।

  • temporary_file2_for_zip.csv বর্তমান ডিরেক্টরিতে তৈরি।

  • temporary.zip ফাইলটি বর্তমান ডিরেক্টরিতে তৈরি করা হয়েছে।


  1. পাইথন ব্যবহার করে কিভাবে PDF ফাইলগুলিকে Excel ফাইলে রূপান্তর করবেন?

  2. কিভাবে ম্যাকে ফাইল জিপ করবেন

  3. কিভাবে লিনাক্সে জিপ ফাইল এক্সট্র্যাক্ট করবেন

  4. ম্যাকওএস-এ কীভাবে 'কম্প্রেস' জিপ এবং আনজিপ 'আনকম্প্রেস' ফাইলগুলি