పైథాన్లో మొత్తం డైరెక్టరీని (ఫోల్డర్) జిప్ ఫైల్లోకి కుదించేటప్పుడు, మీరు ఫైల్ల జాబితాను రూపొందించడానికి os.scandir() లేదా os.listdir()ని ఉపయోగించవచ్చు మరియు వాటిని కుదించడానికి జిప్ఫైల్ మాడ్యూల్ని ఉపయోగించవచ్చు, కానీ దానిని ఉపయోగించడం సులభం. షటిల్ మాడ్యూల్ యొక్క make_archive () సులభం.
జిప్తో పాటు, తారు వంటి ఇతర ఫార్మాట్లకు కూడా మద్దతు ఉంది.
జిప్ ఫైల్ మాడ్యూల్ని ఉపయోగించి జిప్ ఫైల్లను కంప్రెస్ చేయడం మరియు అన్కంప్రెస్ చేయడం గురించి మరింత సమాచారం కోసం, దయచేసి క్రింది కథనాన్ని చూడండి.
డైరెక్టరీని (ఫోల్డర్) జిప్ ఫైల్గా కుదించండి:shutil.make_archive()
మొదటి ఆర్గ్యుమెంట్, బేస్_నేమ్, సృష్టించాల్సిన జిప్ ఫైల్ పేరును నిర్దేశిస్తుంది (పొడిగింపు లేకుండా), మరియు రెండవ ఆర్గ్యుమెంట్, ఫార్మాట్, ఆర్కైవ్ ఆకృతిని నిర్దేశిస్తుంది.
ఆర్గ్యుమెంట్ ఫార్మాట్ కోసం కింది వాటిని ఎంచుకోవచ్చు.
zip'
tar'
gztar'
bztar'
xztar'
మూడవ ఆర్గ్యుమెంట్, 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 క్రింది విధంగా డీకంప్రెస్ చేయబడుతుంది.
new_shutil ├── dir_sub │ └── test_sub.txt └── test.txt
అప్పుడు, root_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