పైథాన్ స్టాండర్డ్ లైబ్రరీ యొక్క జిప్ఫైల్ మాడ్యూల్ ఫైల్లను జిప్లుగా కుదించడానికి మరియు జిప్ ఫైల్లను అన్కంప్రెస్ చేయడానికి ఉపయోగించవచ్చు. ఇది ప్రామాణిక లైబ్రరీలో చేర్చబడింది, కాబట్టి అదనపు ఇన్స్టాలేషన్ అవసరం లేదు.
కింది విషయాలు వివరించబడ్డాయి.
- బహుళ ఫైల్లను జిప్ ఫైల్లోకి కుదించండి
- ఇప్పటికే ఉన్న జిప్ ఫైల్కి కొత్త ఫైల్ను జోడించండి
- డైరెక్టరీని (ఫోల్డర్) జిప్ ఫైల్లోకి కుదించండి
- పాస్వర్డ్తో జిప్ ఫైల్లోకి కుదించబడింది
- జిప్ ఫైల్ యొక్క కంటెంట్లను తనిఖీ చేయండి.
- జిప్ ఫైల్ యొక్క మొత్తం కంటెంట్లను సంగ్రహించండి (అన్ప్యాక్ చేయండి).
- జిప్ ఫైల్ యొక్క కంటెంట్లను ఎంచుకుని, దాన్ని సంగ్రహించండి.
- బహుళ ఫైల్లను జిప్ ఫైల్లోకి కుదించండి
- ఇప్పటికే ఉన్న జిప్ ఫైల్కి కొత్త ఫైల్ను జోడించండి
- డైరెక్టరీని (ఫోల్డర్) జిప్ ఫైల్లోకి కుదించండి
- పాస్వర్డ్తో జిప్ ఫైల్లోకి కుదించబడింది
- జిప్ ఫైల్ యొక్క కంటెంట్లను తనిఖీ చేయండి.
- జిప్ ఫైల్ యొక్క మొత్తం కంటెంట్లను సంగ్రహించండి (అన్ప్యాక్ చేయండి).
- జిప్ ఫైల్ యొక్క కంటెంట్లను ఎంచుకుని, దాన్ని సంగ్రహించండి.
బహుళ ఫైల్లను జిప్ ఫైల్లోకి కుదించండి
ZipFile ఆబ్జెక్ట్ను సృష్టించండి మరియు మీరు కంప్రెస్ చేయాలనుకుంటున్న ఫైల్లను జోడించడానికి రైట్() పద్ధతిని ఉపయోగించండి.
కొత్త జిప్ ఫైల్ను సృష్టించడానికి, ZipFile ఆబ్జెక్ట్ యొక్క కన్స్ట్రక్టర్ యొక్క మొదటి ఆర్గ్యుమెంట్గా సృష్టించబడే జిప్ ఫైల్ యొక్క మార్గాన్ని మరియు రెండవ ఆర్గ్యుమెంట్ని ఈ క్రింది విధంగా పేర్కొనండి.w'
అదనంగా, కుదింపు పద్ధతిని మూడవ వాదనగా పేర్కొనవచ్చు.
zipfile.ZIP_STORED
:కుదింపు లేకుండా బహుళ ఫైల్లను కలపండి (డిఫాల్ట్)zipfile.ZIP_DEFLATED
:సాధారణ జిప్ కంప్రెషన్ (zlib మాడ్యూల్ అవసరం)zipfile.ZIP_BZIP2
:BZIP2 కంప్రెషన్ (bz2 మాడ్యూల్ అవసరం)zipfile.ZIP_LZMA
:LZMA కుదింపు (lzma మాడ్యూల్ అవసరం)
BZIP2 మరియు LZMA అధిక కుదింపు నిష్పత్తిని కలిగి ఉంటాయి (చిన్న పరిమాణానికి కుదించబడతాయి), కానీ కుదింపు కోసం ఎక్కువ సమయం పడుతుంది.
రైట్() పద్ధతిలో, మొదటి ఆర్గ్యుమెంట్ ఫైల్నేమ్తో ఉన్న ఫైల్ రెండవ ఆర్గ్యుమెంట్ ఆర్క్నేమ్తో జిప్ ఫైల్కి వ్రాయబడుతుంది. ఆర్క్ నేమ్ విస్మరించబడితే, ఫైల్ పేరు అలాగే ఉపయోగించబడుతుంది. ఆర్క్నేమ్ డైరెక్టరీ నిర్మాణాన్ని కూడా పేర్కొనవచ్చు.
ZipFile ఆబ్జెక్ట్ క్లోజ్() పద్ధతితో మూసివేయబడాలి, కానీ మీరు స్టేట్మెంట్తో ఉపయోగిస్తే, బ్లాక్ పూర్తయినప్పుడు అది స్వయంచాలకంగా మూసివేయబడుతుంది.
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')
రైట్() పద్ధతి యొక్క కంప్రెస్_టైప్ ఆర్గ్యుమెంట్ని పేర్కొనడం ద్వారా, ప్రతి ఫైల్కు కుదింపు పద్ధతిని ఎంచుకోవడం కూడా సాధ్యమవుతుంది.
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')
ఇప్పటికే ఉన్న జిప్ ఫైల్కి కొత్త ఫైల్ను జోడించండి
ఇప్పటికే ఉన్న జిప్ ఫైల్కి కొత్త ఫైల్ను జోడించడానికి, ZipFile ఆబ్జెక్ట్ను క్రియేట్ చేస్తున్నప్పుడు ఇప్పటికే ఉన్న జిప్ ఫైల్కు కన్స్ట్రక్టర్ యొక్క మొదటి ఆర్గ్యుమెంట్ని సెట్ చేయండి. అలాగే, రెండవ ఆర్గ్యుమెంట్ మోడ్ను ఈ క్రింది విధంగా సెట్ చేయండి.a'
ఆపై, పై ఉదాహరణలో వలె, వ్రాయడం() పద్ధతిని ఉపయోగించి ఫైల్ను జోడించండి.
with zipfile.ZipFile('data/temp/new_comp.zip', 'a') as existing_zip:
existing_zip.write('data/temp/test4.txt', arcname='test4.txt')
డైరెక్టరీని (ఫోల్డర్) జిప్ ఫైల్లోకి కుదించండి
మీరు మొత్తం డైరెక్టరీని (ఫోల్డర్) ఒకే జిప్ ఫైల్గా కుదించాలనుకుంటే, ఫైల్ల జాబితాను రూపొందించడానికి మీరు os.scandir() లేదా os.listdir()ని ఉపయోగించవచ్చు, కానీ షటిల్లో make_archive()ని ఉపయోగించడం సులభం. మాడ్యూల్.
కింది కథనాన్ని చూడండి.
- సంబంధిత కథనాలు:పైథాన్లో జిప్ లేదా తారుకు డైరెక్టరీని (ఫోల్డర్) కుదించడం
పాస్వర్డ్తో జిప్ ఫైల్లోకి కుదించబడింది
జిప్ఫైల్ మాడ్యూల్ పాస్వర్డ్-రక్షిత జిప్లను సృష్టించడానికి మిమ్మల్ని అనుమతించదు. మీరు ఫైల్ను పాస్వర్డ్ రక్షిత జిప్ ఫైల్గా కుదించాలనుకుంటే, థర్డ్ పార్టీ లైబ్రరీ పైమినిజిప్ని ఉపయోగించండి.
పాస్వర్డ్-రక్షిత జిప్ల డీకంప్రెషన్ జిప్ఫైల్ మాడ్యూల్తో చేయవచ్చని గమనించండి (క్రింద చూడండి).
జిప్ ఫైల్ యొక్క కంటెంట్లను తనిఖీ చేయండి.
మీరు ఇప్పటికే ఉన్న జిప్ ఫైల్ యొక్క కంటెంట్లను తనిఖీ చేయవచ్చు.
కన్స్ట్రక్టర్లోని మొదటి ఆర్గ్యుమెంట్ ఫైల్ని ఇప్పటికే ఉన్న జిప్ ఫైల్కి మరియు రెండవ ఆర్గ్యుమెంట్ మోడ్ను ‘r’కి సెట్ చేయడం ద్వారా ZipFile ఆబ్జెక్ట్ను సృష్టించండి. డిఫాల్ట్ ‘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']
జిప్ ఫైల్ యొక్క మొత్తం కంటెంట్లను సంగ్రహించండి (అన్ప్యాక్ చేయండి).
జిప్ ఫైల్ యొక్క కంటెంట్లను అన్ప్యాక్ చేయడానికి, పై ఉదాహరణలో ఉన్నట్లుగా, ఇప్పటికే ఉన్న జిప్ ఫైల్కు మార్గంగా మరియు రెండవ ఆర్గ్యుమెంట్ మోడ్ను కన్స్ట్రక్టర్లోని మొదటి ఆర్గ్యుమెంట్ ఫైల్తో మరియు రెండవ ఆర్గ్యుమెంట్ మోడ్తో ZipFile ఆబ్జెక్ట్ను సృష్టించండి. మోడ్ ఆర్గ్యుమెంట్ ‘r’కి డిఫాల్ట్ అయినందున దానిని విస్మరించవచ్చు.
ZipFile ఆబ్జెక్ట్ యొక్క extractall() పద్ధతి జిప్ ఫైల్ యొక్క మొత్తం కంటెంట్లను సంగ్రహిస్తుంది (అన్కంప్రెస్ చేస్తుంది). మొదటి వాదన, మార్గం, సంగ్రహించవలసిన డైరెక్టరీ యొక్క మార్గాన్ని నిర్దేశిస్తుంది. అది విస్మరించబడితే, ఫైల్లు ప్రస్తుత డైరెక్టరీకి సంగ్రహించబడతాయి.
with zipfile.ZipFile('data/temp/new_comp.zip') as existing_zip:
existing_zip.extractall('data/temp/ext')
పాస్వర్డ్తో కూడిన జిప్ ఫైల్ని extractall() పద్ధతి యొక్క ఆర్గ్యుమెంట్ pwdగా పాస్వర్డ్ని పేర్కొనడం ద్వారా సంగ్రహించవచ్చు.
with zipfile.ZipFile('data/temp/new_comp_with_pass.zip') as pass_zip:
pass_zip.extractall('data/temp/ext_pass', pwd='password')
జిప్ ఫైల్ యొక్క కంటెంట్లను ఎంచుకుని, దాన్ని సంగ్రహించండి.
మీరు నిర్దిష్ట ఫైల్లను మాత్రమే అన్ప్యాక్ చేసి, ఎక్స్ట్రాక్ట్ చేయాలనుకుంటే, ఎక్స్ట్రాక్ట్() పద్ధతిని ఉపయోగించండి.
ఎక్స్ట్రాక్ట్() పద్ధతి యొక్క మొదటి ఆర్గ్యుమెంట్ అనేది ఎక్స్ట్రాక్ట్ చేయాల్సిన ఫైల్ పేరు, మరియు రెండవ ఆర్గ్యుమెంట్ పాత్ అనేది డైరెక్టరీకి సంగ్రహించే మార్గం. పాత్ ఆర్గ్యుమెంట్ విస్మరించబడితే, ఫైల్ ప్రస్తుత డైరెక్టరీకి సంగ్రహించబడుతుంది. సంగ్రహించవలసిన ఫైల్ పేరు జిప్ ఫైల్లో డైరెక్టరీకి వెళ్లే మార్గాన్ని కలిగి ఉండాలి, అది నిల్వ చేయబడి ఉంటే.
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')