zipfile program
This commit is contained in:
parent
81fe349a23
commit
e8375cfc65
36
backupToZip.py
Executable file
36
backupToZip.py
Executable file
|
@ -0,0 +1,36 @@
|
|||
#! /usr/bin/env python3
|
||||
usage = "backupToZip: usage backupToZip [directory] backup given directory to a zip file, incrementing filename if name already exists"
|
||||
|
||||
import zipfile, os, sys
|
||||
|
||||
if len(sys.argv)<1:
|
||||
print(usage)
|
||||
sys.exit()
|
||||
|
||||
dir = os.path.realpath(sys.argv[1])
|
||||
|
||||
#figure out filename based on what already exists.
|
||||
number = 1
|
||||
while True:
|
||||
zipFilename = os.path.basename(dir)+'-'+str(number)+'.zip'
|
||||
if not os.path.exists(zipFilename):
|
||||
break
|
||||
number += 1
|
||||
|
||||
print(F'Creating {zipFilename}')
|
||||
backupZip = zipfile.ZipFile(zipFilename, 'w')
|
||||
|
||||
for dirName, subDirList, fileList in os.walk(dir):
|
||||
#print(f'Adding files in {dirName}')
|
||||
backupZip.write(dirName)
|
||||
|
||||
for fileName in fileList:
|
||||
#lets not backup other backup files.
|
||||
newBase = os.path.basename(dir)+'-'
|
||||
if fileName.startswith(newBase) and fileName.endswith('.zip'):
|
||||
print(f'skipping {fileName}, is backup file.')
|
||||
continue
|
||||
print(f'adding {fileName}')
|
||||
backupZip.write(os.path.join(dirName, fileName))
|
||||
backupZip.close()
|
||||
print('done')
|
Loading…
Reference in a new issue