Advertisement
Guest User

Untitled

a guest
May 24th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. import tkinter as tk
  2. import zipfile, os
  3. import time, shutil
  4. from tkinter.filedialog import askdirectory
  5.  
  6. class Application(tk.Frame):
  7. def __init__(self, master=None):
  8. master.minsize(width=250, height=60)
  9. super().__init__(master)
  10. self.pack()
  11. self.create_backup()
  12.  
  13. def backupToZip(folder):
  14.  
  15. os.getcwd()
  16. print(os.getcwd())
  17. os.chdir('c:\\temp')
  18.  
  19. tlocal = time.localtime()
  20. timestamp = time.strftime('%b-%d-%Y_%H%M', tlocal) # Timestamp.
  21.  
  22. folder = askdirectory(title="Choose folder to backup") # Open dir.
  23. folder = os.path.abspath(folder)
  24.  
  25. while True:
  26. zipFilename = os.path.basename(folder) + '_' + str(timestamp) + '.zip' # Adding timestamp.
  27. if not os.path.exists(zipFilename):
  28. break
  29.  
  30. # Create zip file.
  31. print('Creating %s...' % (zipFilename))
  32. backupZip = zipfile.ZipFile(zipFilename, 'w')
  33.  
  34. # Walk folders.
  35. for foldername, subfolders, filenames in os.walk(folder):
  36. print('Adding files in %s...' % (foldername))
  37. # Add folder to zip.
  38. backupZip.write(foldername)
  39.  
  40. # Add files.
  41. for filename in filenames:
  42. if filename.startswith(os.path.basename(folder) + '_') and filename.endswith('.zip'):
  43. continue
  44. backupZip.write(os.path.join(foldername, filename))
  45. backupZip.close()
  46. src = (r"c:\\temp\\" + zipFilename)
  47. outfolder = askdirectory(title="Backup drive")
  48. shutil.move(src, outfolder) # move Data.
  49. print('Done.')
  50.  
  51.  
  52. def create_backup(self):
  53.  
  54. self.backup = tk.Button(self, text="Scotty, Back me up!", command=self.backupToZip) # Backup Button.
  55. self.backup.pack(side="top")
  56.  
  57. self.quit = tk.Button(self, text="Hasta la vista, Baby", command=root.destroy) # Exit.
  58. self.quit.pack(side="bottom")
  59.  
  60.  
  61. root = tk.Tk(className = "Fast backup")
  62. root.resizable(width=False, height=False)
  63. app = Application(master=root)
  64. app.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement