पाइथनमा जिप वा टारमा डाइरेक्टरी (फोल्डर) कम्प्रेस गर्दै

व्यापार

पाइथनमा जिप फाइलमा सम्पूर्ण डाइरेक्टरी (फोल्डर) कम्प्रेस गर्दा, तपाईंले फाइलहरूको सूची सिर्जना गर्न os.scandir() वा os.listdir() प्रयोग गर्न सक्नुहुन्छ र तिनीहरूलाई कम्प्रेस गर्न zipfile मोड्युल प्रयोग गर्न सक्नुहुन्छ, तर यो प्रयोग गर्न सजिलो छ। shutil मोड्युलको make_archive () सजिलो छ।

zip को अतिरिक्त, टार जस्ता अन्य ढाँचाहरू पनि समर्थित छन्।

zipfile मोड्युल प्रयोग गरेर जिप फाइलहरू कम्प्रेस गर्ने र अनकम्प्रेस गर्ने ’bout थप जानकारीको लागि, कृपया निम्न लेखलाई सन्दर्भ गर्नुहोस्।

जिप फाइलमा डाइरेक्टरी (फोल्डर) कम्प्रेस गर्नुहोस्:shutil.make_archive()

पहिलो तर्क, base_name, सिर्जना गर्नको लागि zip फाइलको नाम निर्दिष्ट गर्दछ (विस्तार बिना), र दोस्रो तर्क, ढाँचा, अभिलेख ढाँचा निर्दिष्ट गर्दछ।

तर्क ढाँचाको लागि निम्न चयन गर्न सकिन्छ।

  • 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')

नयाँ_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