Python मधील zip किंवा tar मध्ये निर्देशिका (फोल्डर) संकुचित करणे

व्यवसाय

पायथनमधील झिप फाइलमध्ये संपूर्ण निर्देशिका (फोल्डर) संकुचित करताना, तुम्ही फाइल्सची सूची तयार करण्यासाठी os.scandir() किंवा os.listdir() वापरू शकता आणि त्यांना कॉम्प्रेस करण्यासाठी zipfile मॉड्यूल वापरू शकता, परंतु ते वापरणे सोपे आहे. shutil मॉड्यूलचे make_archive () सोपे आहे.

झिप व्यतिरिक्त, टार सारखे इतर स्वरूप देखील समर्थित आहेत.

zipfile मॉड्यूलचा वापर करून zip फाइल्स कॉम्प्रेस आणि अनकॉम्प्रेस करण्याबद्दल अधिक माहितीसाठी, कृपया खालील लेख पहा.

डिरेक्टरी (फोल्डर) झिप फाइलमध्ये कॉम्प्रेस करा:shutil.make_archive()

पहिला युक्तिवाद, base_name, तयार करायच्या zip फाइलचे नाव निर्दिष्ट करते (विस्ताराशिवाय), आणि दुसरा वितर्क, स्वरूप, संग्रहण स्वरूप निर्दिष्ट करते.

युक्तिवाद स्वरूपासाठी खालील निवडले जाऊ शकते.

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

तिसरा वितर्क, root_dir, संकुचित करण्याच्या निर्देशिकेच्या रूट निर्देशिकेचा मार्ग निर्दिष्ट करतो आणि चौथा वितर्क, base_dir, रूट_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')

base_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