Python හි සම්පූර්ණ නාමාවලියක් (ෆෝල්ඩරයක්) zip ගොනුවකට සම්පීඩනය කරන විට, ඔබට os.scandir() හෝ os.listdir() භාවිතා කර ගොනු ලැයිස්තුවක් සාදා ඒවා සම්පීඩනය කිරීමට zipfile මොඩියුලය භාවිතා කළ හැක, නමුත් එය භාවිතා කිරීමට පහසු වේ. shutil මොඩියුලයේ make_archive () පහසු වේ.
zip වලට අමතරව, tar වැනි වෙනත් ආකෘති සඳහාද සහය දක්වයි.
Zipfile මොඩියුලය භාවිතයෙන් zip ගොනු සම්පීඩනය කිරීම සහ ඉවත් කිරීම පිළිබඳ වැඩි විස්තර සඳහා කරුණාකර පහත ලිපිය බලන්න.
බහලුම (ෆෝල්ඩරය) zip ගොනුවකට සම්පීඩනය කරන්න: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')
ඉහත සිටුවම් සමඟින් compress කරන ලද 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