ازگر میں ڈائرکٹری (فولڈر) کو زپ یا ٹار میں کمپریس کرنا

کاروبار

Python میں ایک پوری ڈائریکٹری (فولڈر) کو زپ فائل میں کمپریس کرتے وقت، آپ فائلوں کی فہرست بنانے کے لیے os.scandir() یا os.listdir() کا استعمال کر سکتے ہیں اور ان کو کمپریس کرنے کے لیے zipfile ماڈیول کا استعمال کر سکتے ہیں، لیکن یہ استعمال کرنا آسان ہے۔ شٹل ماڈیول کا make_archive () آسان ہے۔

زپ کے علاوہ، دیگر فارمیٹس جیسے ٹار بھی معاون ہیں۔

zipfile ماڈیول کا استعمال کرتے ہوئے zip فائلوں کو کمپریس اور غیر کمپریس کرنے کے بارے میں مزید معلومات کے لیے، براہ کرم درج ذیل مضمون کا حوالہ دیں۔

ڈائرکٹری (فولڈر) کو زپ فائل میں کمپریس کریں۔: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 مندرجہ بالا سیٹنگز کے ساتھ کمپریس کیا گیا ہے جس میں base_dir کو چھوڑ دیا جائے گا۔

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