នៅពេលបង្ហាប់ថតទាំងមូល (ថតឯកសារ) ទៅក្នុងឯកសារហ្ស៊ីបក្នុង Python អ្នកអាចប្រើ os.scandir() ឬ os.listdir() ដើម្បីបង្កើតបញ្ជីឯកសារ ហើយប្រើម៉ូឌុល zipfile ដើម្បីបង្ហាប់ពួកវា ប៉ុន្តែវាកាន់តែងាយស្រួលប្រើ។ make_archive () នៃម៉ូឌុល shutil គឺងាយស្រួលជាង។
បន្ថែមពីលើ zip ទម្រង់ផ្សេងទៀតដូចជា tar ក៏ត្រូវបានគាំទ្រផងដែរ។
សម្រាប់ព័ត៌មានបន្ថែមអំពីការបង្ហាប់ និងការមិនបង្ហាប់ឯកសារ zip ដោយប្រើម៉ូឌុល zipfile សូមយោងលើអត្ថបទខាងក្រោម។
- អត្ថបទដែលទាក់ទង:zipfile ដើម្បីបង្ហាប់ និងពន្លាឯកសារ ZIP នៅក្នុង Python
បង្រួមថតឯកសារ (ថតឯកសារ) ទៅក្នុងឯកសារ zip:shutil.make_archive()
អាគុយម៉ង់ទីមួយ base_name បញ្ជាក់ឈ្មោះឯកសារ zip ដែលត្រូវបង្កើត (ដោយគ្មានផ្នែកបន្ថែម) ហើយអាគុយម៉ង់ទីពីរ ទ្រង់ទ្រាយ បញ្ជាក់ទ្រង់ទ្រាយប័ណ្ណសារ។
ខាងក្រោមនេះអាចត្រូវបានជ្រើសរើសសម្រាប់ទម្រង់អាគុយម៉ង់។
zip'
tar'
gztar'
bztar'
xztar'
អាគុយម៉ង់ទីបី root_dir បញ្ជាក់ផ្លូវនៃថត root នៃថតដែលត្រូវបង្ហាប់ ហើយអាគុយម៉ង់ទីបួន 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