পাইথনে একটি জিপ বা টার মধ্যে একটি ডিরেক্টরি (ফোল্ডার) সংকুচিত করা

ব্যবসায়

পাইথনে একটি জিপ ফাইলে একটি সম্পূর্ণ ডিরেক্টরি (ফোল্ডার) সংকুচিত করার সময়, আপনি ফাইলগুলির একটি তালিকা তৈরি করতে os.scandir() বা os.listdir() ব্যবহার করতে পারেন এবং সেগুলিকে সংকুচিত করতে zipfile মডিউল ব্যবহার করতে পারেন, তবে এটি ব্যবহার করা আরও সহজ। shutil মডিউলের make_archive() সহজ।

জিপ ছাড়াও, অন্যান্য ফরম্যাট যেমন টারও সমর্থিত।

জিপফাইল মডিউল ব্যবহার করে জিপ ফাইল কম্প্রেস এবং আনকম্প্রেস করার বিষয়ে আরও তথ্যের জন্য, অনুগ্রহ করে নিম্নলিখিত নিবন্ধটি পড়ুন।

একটি জিপ ফাইলে একটি ডিরেক্টরি (ফোল্ডার) সংকুচিত করুন:shutil.make_archive()

প্রথম আর্গুমেন্ট, base_name, তৈরি করা জিপ ফাইলের নাম নির্দিষ্ট করে (এক্সটেনশন ছাড়া), এবং দ্বিতীয় আর্গুমেন্ট, ফরম্যাট, আর্কাইভ ফরম্যাট নির্দিষ্ট করে।

নিম্নলিখিত যুক্তি বিন্যাস জন্য নির্বাচন করা যেতে পারে.

  • zip'
  • tar'
  • gztar'
  • bztar'
  • xztar'

তৃতীয় আর্গুমেন্ট, root_dir, নির্দেশ করে যে ডাইরেক্টরির রুট ডিরেক্টরির পাথ সংকুচিত করা হবে এবং চতুর্থ আর্গুমেন্ট, base_dir, root_dir-এর সাপেক্ষে কম্প্রেস করা ডিরেক্টরির পাথ নির্দিষ্ট করে। উভয়ই ডিফল্টরূপে বর্তমান ডিরেক্টরিতে সেট করা আছে।

যদি base_dir বাদ দেওয়া হয়, পুরো root_dir সংকুচিত হবে।

data/temp
উদাহরণস্বরূপ, ধরুন আমাদের নিম্নলিখিত কাঠামো সহ একটি ডিরেক্টরি রয়েছে।

dir
├── dir_sub
   └── test_sub.txt
└── test.txt
import shutil

shutil.make_archive('data/temp/new_shutil', 'zip', root_dir='data/temp/dir')

বেস_ডির বাদ দিয়ে উপরের সেটিংসের সাথে সংকুচিত new_shutil.zip নিম্নরূপ ডিকম্প্রেস করা হবে।

new_shutil
├── dir_sub
   └── test_sub.txt
└── test.txt

তারপর, root_dir-এ ডিরেক্টরিটি base_dir-এর জন্য নির্দিষ্ট করা থাকলে, নিম্নলিখিতগুলি দেখানো হবে।

shutil.make_archive('data/temp/new_shutil_sub', 'zip', root_dir='data/temp/dir', base_dir='dir_sub')

উপরের সেটিংসের সাথে কম্প্রেস করা new_shutil_sub.zip নিম্নরূপ ডিকম্প্রেস করা হবে।

dir_sub
└── test_sub.txt
Copied title and URL