-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpbackup.py
More file actions
executable file
·48 lines (40 loc) · 1.62 KB
/
pbackup.py
File metadata and controls
executable file
·48 lines (40 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#! /usr/bin/python
'''
This project will create a ZIP file of an entire folder. This is a form
of version control where you can take snapshots of your folder so you can
keep different versions. The ZIP files will also increment each time it is
called. (e.g backup_1.zip, backup_2.zip, etc.)
Future Extensions: Also put date on folder as well
Allow for user input
'''
# Step 1: Determine name for ZIP File
import zipfile, os
def backupToZip(folder):
# Backup the entire contents of "folder" into a ZIP file.
folder = os.path.abspath(folder) # make sure folder is absolute
# Figure out the filename this code should use based on what files
# already exist
number = 1
while True:
zipFilename = os.path.basename(folder) + '_' + str(number) + '.zip'
if not os.path.exists(zipFilename):
break
number = number + 1
# Step 2: Create the ZIP file.
print('Creating %s...' % (zipFilename))
backupZip = zipfile.ZipFile(zipFilename, 'w')
# Step 3: Traverse the directory tree and add files to ZIP File
for foldername, subfolder, filenames in os.walk(folder):
print('Adding the files in %s...' % (foldername))
# Add the current folder to the zip file
backupZip.write(foldername)
# Add all the files in this folder to the ZIP file
for filename in filenames:
newBase = os.path.basename(folder) + '_'
if filename.startswith(newBase) and filename.endswith('.zip'):
continue # don't backup the backup zip files
backupZip.write(os.path.join(foldername,filename))
backupZip.close()
print('Done.')
pathName = os.path.abspath("./cuteStuff")
backupToZip(pathName)