பைத்தானில் ஒரு கோப்பகத்தை (கோப்புறை) ஜிப் அல்லது டாரில் சுருக்குதல்

வணிக

பைத்தானில் ஒரு முழு கோப்பகத்தையும் (கோப்புறை) சுருக்கும்போது, ​​கோப்புகளின் பட்டியலை உருவாக்க os.scandir() அல்லது os.listdir() ஐப் பயன்படுத்தலாம் மற்றும் அவற்றை சுருக்க ஜிப்ஃபைல் தொகுதியைப் பயன்படுத்தலாம், ஆனால் அதைப் பயன்படுத்துவது எளிது. shutil தொகுதியின் make_archive () எளிதானது.

ஜிப்பைத் தவிர, தார் போன்ற பிற வடிவங்களும் ஆதரிக்கப்படுகின்றன.

ஜிப்ஃபைல் தொகுதியைப் பயன்படுத்தி ஜிப் கோப்புகளை சுருக்குவது மற்றும் அவிழ்ப்பது பற்றிய கூடுதல் தகவலுக்கு, பின்வரும் கட்டுரையைப் பார்க்கவும்.

ஒரு கோப்பகத்தை (கோப்புறை) ஜிப் கோப்பில் சுருக்கவும்:shutil.make_archive()

முதல் வாதம், base_name, உருவாக்கப்பட வேண்டிய zip கோப்பின் பெயரைக் குறிப்பிடுகிறது (நீட்டிப்பு இல்லாமல்), மற்றும் இரண்டாவது வாதமான வடிவம், காப்பக வடிவமைப்பைக் குறிப்பிடுகிறது.

வாத வடிவத்திற்கு பின்வருவனவற்றை தேர்ந்தெடுக்கலாம்.

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

மூன்றாவது வாதம், ரூட்_டிர், சுருக்கப்பட வேண்டிய கோப்பகத்தின் ரூட் கோப்பகத்தின் பாதையைக் குறிப்பிடுகிறது, மேலும் நான்காவது வாதம், பேஸ்_டிர், ரூட்_டிர் உடன் சுருக்கப்பட வேண்டிய கோப்பகத்தின் பாதையைக் குறிப்பிடுகிறது. இரண்டும் முன்னிருப்பாக தற்போதைய கோப்பகத்தில் அமைக்கப்பட்டுள்ளன.

அடிப்படை_டிர் தவிர்க்கப்பட்டால், ரூட்_டிர் முழுவதும் சுருக்கப்படும்.

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
Copied title and URL