பைதான் நிலையான நூலகத்தின் ஜிப்ஃபைல் தொகுதி கோப்புகளை ஜிப்களாக சுருக்கவும் மற்றும் ஜிப் கோப்புகளை சுருக்கவும் பயன்படுத்தப்படலாம். இது நிலையான நூலகத்தில் சேர்க்கப்பட்டுள்ளது, எனவே கூடுதல் நிறுவல் தேவையில்லை.
பின்வரும் உள்ளடக்கங்கள் விளக்கப்பட்டுள்ளன.
- ஜிப் கோப்பில் பல கோப்புகளை சுருக்கவும்
- ஏற்கனவே உள்ள ZIP கோப்பில் புதிய கோப்பைச் சேர்க்கவும்
- ஒரு கோப்பகத்தை (கோப்புறை) ஒரு ZIP கோப்பில் சுருக்கவும்
- கடவுச்சொல்லுடன் ஜிப் கோப்பில் சுருக்கப்பட்டது
- ZIP கோப்பின் உள்ளடக்கங்களைச் சரிபார்க்கவும்.
- ZIP கோப்பின் முழு உள்ளடக்கங்களையும் பிரித்தெடுக்கவும் (திறக்கவும்).
- ZIP கோப்பின் உள்ளடக்கங்களைத் தேர்ந்தெடுத்து அதைப் பிரித்தெடுக்கவும்.
- ஜிப் கோப்பில் பல கோப்புகளை சுருக்கவும்
- ஏற்கனவே உள்ள ZIP கோப்பில் புதிய கோப்பைச் சேர்க்கவும்
- ஒரு கோப்பகத்தை (கோப்புறை) ஒரு ZIP கோப்பில் சுருக்கவும்
- கடவுச்சொல்லுடன் ஜிப் கோப்பில் சுருக்கப்பட்டது
- ZIP கோப்பின் உள்ளடக்கங்களைச் சரிபார்க்கவும்.
- ZIP கோப்பின் முழு உள்ளடக்கங்களையும் பிரித்தெடுக்கவும் (திறக்கவும்).
- ZIP கோப்பின் உள்ளடக்கங்களைத் தேர்ந்தெடுத்து அதைப் பிரித்தெடுக்கவும்.
ஜிப் கோப்பில் பல கோப்புகளை சுருக்கவும்
ஒரு ZipFile பொருளை உருவாக்கி, நீங்கள் சுருக்க விரும்பும் கோப்புகளைச் சேர்க்க எழுத () முறையைப் பயன்படுத்தவும்.
புதிய ஜிப் கோப்பை உருவாக்க, ஜிப்ஃபைல் பொருளின் கட்டமைப்பாளரின் முதல் வாதமாக உருவாக்கப்படும் ஜிப் கோப்பின் பாதையையும், இரண்டாவது வாதத்தை பின்வருமாறு குறிப்பிடவும்.w'
கூடுதலாக, சுருக்க முறையை மூன்றாவது வாதமாக குறிப்பிடலாம்.
zipfile.ZIP_STORED
:சுருக்கம் இல்லாமல் பல கோப்புகளை இணைக்கவும் (இயல்புநிலை)zipfile.ZIP_DEFLATED
:இயல்பான ZIP சுருக்கம் (zlib தொகுதி தேவை)zipfile.ZIP_BZIP2
:BZIP2 சுருக்கம் (bz2 தொகுதி தேவை)zipfile.ZIP_LZMA
:LZMA சுருக்கம் (lzma தொகுதி தேவை)
BZIP2 மற்றும் LZMA ஆகியவை அதிக சுருக்க விகிதத்தைக் கொண்டுள்ளன (சிறிய அளவில் சுருக்கப்படலாம்), ஆனால் சுருக்கத்திற்குத் தேவைப்படும் நேரம் அதிகம்.
எழுது() முறையில், முதல் வாதக் கோப்புப் பெயருடன் கூடிய கோப்பு, இரண்டாவது ஆர்க்யூமென்ட் ஆர்க்பெயருடன் ஜிப் கோப்பில் எழுதப்படும். ஆர்க் பெயர் தவிர்க்கப்பட்டால், கோப்புப் பெயர் அப்படியே பயன்படுத்தப்படும். arcname ஒரு அடைவு கட்டமைப்பையும் குறிப்பிடலாம்.
ZipFile ஆப்ஜெக்ட்டை close() முறையில் மூட வேண்டும், ஆனால் நீங்கள் அறிக்கையுடன் பயன்படுத்தினால், பிளாக் முடிந்ததும் அது தானாகவே மூடப்படும்.
import zipfile
with zipfile.ZipFile('data/temp/new_comp.zip', 'w', compression=zipfile.ZIP_DEFLATED) as new_zip:
new_zip.write('data/temp/test1.txt', arcname='test1.txt')
new_zip.write('data/temp/test2.txt', arcname='zipdir/test2.txt')
new_zip.write('data/temp/test3.txt', arcname='zipdir/sub_dir/test3.txt')
எழுது() முறையின் compress_type வாதத்தைக் குறிப்பிடுவதன் மூலம், ஒவ்வொரு கோப்பிற்கான சுருக்க முறையைத் தேர்ந்தெடுக்கவும் முடியும்.
with zipfile.ZipFile('data/temp/new_comp_single.zip', 'w') as new_zip:
new_zip.write('data/temp/test1.txt', arcname='test1.txt', compress_type=zipfile.ZIP_DEFLATED)
new_zip.write('data/temp/test2.txt', arcname='zipdir/test2.txt')
new_zip.write('data/temp/test3.txt', arcname='zipdir/sub_dir/test3.txt')
ஏற்கனவே உள்ள ZIP கோப்பில் புதிய கோப்பைச் சேர்க்கவும்
ஏற்கனவே உள்ள ஜிப் கோப்பில் புதிய கோப்பைச் சேர்க்க, ஜிப்ஃபைல் ஆப்ஜெக்ட்டை உருவாக்கும் போது, கன்ஸ்ட்ரக்டரின் முதல் வாதத்தை ஏற்கனவே இருக்கும் ஜிப் கோப்பின் பாதைக்கு அமைக்கவும். மேலும், இரண்டாவது வாதப் பயன்முறையை பின்வருமாறு அமைக்கவும்.a'
மேலே உள்ள எடுத்துக்காட்டில் உள்ளதைப் போல, எழுது() முறையைப் பயன்படுத்தி கோப்பைச் சேர்க்கவும்.
with zipfile.ZipFile('data/temp/new_comp.zip', 'a') as existing_zip:
existing_zip.write('data/temp/test4.txt', arcname='test4.txt')
ஒரு கோப்பகத்தை (கோப்புறை) ஒரு ZIP கோப்பில் சுருக்கவும்
நீங்கள் ஒரு முழு கோப்பகத்தையும் (கோப்புறை) ஒரு ஜிப் கோப்பாக சுருக்க விரும்பினால், கோப்புகளின் பட்டியலை உருவாக்க os.scandir() அல்லது os.listdir() ஐப் பயன்படுத்தலாம், ஆனால் ஷட்டில் உள்ள make_archive() ஐப் பயன்படுத்துவது எளிது. தொகுதி.
பின்வரும் கட்டுரையைப் பார்க்கவும்.
- தொடர்புடைய கட்டுரைகள்:பைத்தானில் ஒரு கோப்பகத்தை (கோப்புறை) ஜிப் அல்லது டார் செய்ய சுருக்குதல்
கடவுச்சொல்லுடன் ஜிப் கோப்பில் சுருக்கப்பட்டது
கடவுச்சொல் பாதுகாக்கப்பட்ட ZIPகளை உருவாக்க zipfile தொகுதி உங்களை அனுமதிக்காது. கடவுச்சொல் பாதுகாக்கப்பட்ட ஜிப் கோப்பில் கோப்பை சுருக்க விரும்பினால், மூன்றாம் தரப்பு லைப்ரரி பைமினிசிப்பைப் பயன்படுத்தவும்.
கடவுச்சொல்-பாதுகாக்கப்பட்ட ஜிப்களின் டிகம்பிரஷனை ஜிப்ஃபைல் தொகுதி மூலம் செய்ய முடியும் என்பதை நினைவில் கொள்ளவும் (கீழே காண்க).
ZIP கோப்பின் உள்ளடக்கங்களைச் சரிபார்க்கவும்.
ஏற்கனவே உள்ள ZIP கோப்பின் உள்ளடக்கங்களை நீங்கள் சரிபார்க்கலாம்.
கன்ஸ்ட்ரக்டரில் உள்ள முதல் ஆர்குமெண்ட் கோப்பை ஏற்கனவே இருக்கும் ஜிப் கோப்பின் பாதையிலும், இரண்டாவது ஆர்குமெண்ட் பயன்முறையை ‘ஆர்’ ஆகவும் அமைப்பதன் மூலம் ஜிப்ஃபைல் பொருளை உருவாக்கவும். இயல்புநிலை ‘r’ என்பதால் பயன்முறை வாதத்தைத் தவிர்க்கலாம்.
காப்பகப்படுத்தப்பட்ட கோப்புகளின் பட்டியலைப் பெற, ZipFile பொருளின் பெயர் பட்டியல்() முறையைப் பயன்படுத்தலாம்.
with zipfile.ZipFile('data/temp/new_comp.zip') as existing_zip:
print(existing_zip.namelist())
# ['test1.txt', 'zipdir/test2.txt', 'zipdir/sub_dir/test3.txt', 'test4.txt']
ZIP கோப்பின் முழு உள்ளடக்கங்களையும் பிரித்தெடுக்கவும் (திறக்கவும்).
ஜிப் கோப்பின் உள்ளடக்கங்களைத் திறக்க, மேலே உள்ள எடுத்துக்காட்டில் உள்ளதைப் போல, ஏற்கனவே உள்ள ஜிப் கோப்பிற்கான பாதையாகவும், இரண்டாவது ஆர்க்யூமென்ட் பயன்முறையை ‘ஆர்’ ஆகவும் கன்ஸ்ட்ரக்டரில் உள்ள முதல் வாதக் கோப்பைக் கொண்டு ஒரு ஜிப்ஃபைல் பொருளை உருவாக்கவும். பயன்முறை வாதமானது ‘r’ க்கு இயல்புநிலையாக இருப்பதால் தவிர்க்கப்படலாம்.
ZipFile ஆப்ஜெக்ட்டின் extractall() முறையானது ZIP கோப்பின் முழு உள்ளடக்கத்தையும் பிரித்தெடுக்கிறது (அழுத்துகிறது). முதல் வாதம், பாதை, பிரித்தெடுக்க வேண்டிய கோப்பகத்தின் பாதையைக் குறிப்பிடுகிறது. இது தவிர்க்கப்பட்டால், கோப்புகள் தற்போதைய கோப்பகத்தில் பிரித்தெடுக்கப்படும்.
with zipfile.ZipFile('data/temp/new_comp.zip') as existing_zip:
existing_zip.extractall('data/temp/ext')
கடவுச்சொல்லைக் கொண்ட ஒரு ZIP கோப்பை extractall() முறையின் வாதம் pwd எனக் குறிப்பிடுவதன் மூலம் பிரித்தெடுக்க முடியும்.
with zipfile.ZipFile('data/temp/new_comp_with_pass.zip') as pass_zip:
pass_zip.extractall('data/temp/ext_pass', pwd='password')
ZIP கோப்பின் உள்ளடக்கங்களைத் தேர்ந்தெடுத்து அதைப் பிரித்தெடுக்கவும்.
குறிப்பிட்ட கோப்புகளை மட்டும் அன்பேக் செய்து பிரித்தெடுக்க விரும்பினால், extract() முறையைப் பயன்படுத்தவும்.
Extract() முறையின் முதல் வாதம் பிரித்தெடுக்க வேண்டிய கோப்பின் பெயர், மற்றும் இரண்டாவது வாதம் பாதை பிரித்தெடுக்க வேண்டிய கோப்பகத்தின் பாதை. பாதை வாதம் தவிர்க்கப்பட்டால், கோப்பு தற்போதைய கோப்பகத்தில் பிரித்தெடுக்கப்படும். பிரித்தெடுக்கப்படும் கோப்பின் பெயர், ZIP கோப்பில் சேமித்து வைக்கப்பட்டிருந்தால், கோப்பகத்திற்கான பாதையை உள்ளடக்கியிருக்க வேண்டும்.
with zipfile.ZipFile('data/temp/new_comp.zip') as existing_zip:
existing_zip.extract('test1.txt', 'data/temp/ext2')
Extractall() முறையைப் போலவே, Extract() முறையும் நீங்கள் கடவுச்சொல்லை வாதம் pwd ஆகக் குறிப்பிட அனுமதிக்கிறது.
with zipfile.ZipFile('data/temp/new_comp_with_pass.zip') as pass_zip:
pass_zip.extract('test1.txt', 'data/temp/ext_pass2', pwd='password')