પાયથોનમાં ઝિપ ફાઇલમાં આખી ડિરેક્ટરી (ફોલ્ડર)ને સંકુચિત કરતી વખતે, તમે ફાઇલોની સૂચિ બનાવવા માટે os.scandir() અથવા os.listdir() નો ઉપયોગ કરી શકો છો અને તેને સંકુચિત કરવા માટે zipfile મોડ્યુલનો ઉપયોગ કરી શકો છો, પરંતુ તેનો ઉપયોગ કરવો વધુ સરળ છે. શટીલ મોડ્યુલનું make_archive () સરળ છે.
ઝિપ ઉપરાંત, ટાર જેવા અન્ય ફોર્મેટ પણ સપોર્ટેડ છે.
zipfile મોડ્યુલનો ઉપયોગ કરીને ઝિપ ફાઇલોને સંકુચિત અને અનકમ્પ્રેસ કરવા વિશે વધુ માહિતી માટે, કૃપા કરીને નીચેના લેખનો સંદર્ભ લો.
ઝિપ ફાઇલમાં ડિરેક્ટરી (ફોલ્ડર) ને સંકુચિત કરો:shutil.make_archive()
પ્રથમ દલીલ, આધાર_નામ, બનાવવા માટેની ઝિપ ફાઇલનું નામ સ્પષ્ટ કરે છે (એક્સ્ટેંશન વિના), અને બીજી દલીલ, ફોર્મેટ, આર્કાઇવ ફોર્મેટનો ઉલ્લેખ કરે છે.
દલીલ ફોર્મેટ માટે નીચેનાને પસંદ કરી શકાય છે.
zip'
tar'
gztar'
bztar'
xztar'
ત્રીજી દલીલ, રૂટ_ડીર, સંકુચિત કરવાની ડિરેક્ટરીની રૂટ ડિરેક્ટરીના પાથને સ્પષ્ટ કરે છે, અને ચોથી દલીલ, base_dir, રુટ_ડીર સાથે સંબંધિત સંકુચિત કરવા માટેની ડિરેક્ટરીનો પાથ સ્પષ્ટ કરે છે. બંને મૂળભૂત રીતે વર્તમાન નિર્દેશિકા પર સેટ છે.
જો base_dir અવગણવામાં આવે, તો સમગ્ર રૂટ_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')
નવી_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')
ઉપરોક્ત સેટિંગ્સ સાથે સંકુચિત નવી_shutil_sub.zip નીચે પ્રમાણે ડીકોમ્પ્રેસ કરવામાં આવશે.
dir_sub
└── test_sub.txt