Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.96 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. import os
  3.  
  4.  
  5. class MVCmd:
  6. "cmd move file with undo"
  7.  
  8. def __init__(self, src, dest):
  9. self.src = src
  10. self.dest = dest
  11.  
  12. def execute(self):
  13. self.rename(self.src, self.dest)
  14. # We can do it in just call rename(), but with decoupling into command pattern, we can use undo().
  15.  
  16. def undo(self):
  17. self.rename(self.dest, self.src)
  18.  
  19. def rename(self, src, dest): # not self.src, self.dest, since we want to call undo()
  20. os.rename(src, dest)
  21. print(f'rename/move {src} to {dest}')
  22.  
  23.  
  24. # todo testing
  25. def main(src, dest,undo=False):
  26. mv = MVCmd(src,dest)
  27.  
  28. if undo:
  29. mv.undo()
  30. else:
  31. mv.execute()
  32.  
  33.  
  34. # todo testing
  35. if __name__ == '__main__':
  36. from argparse import ArgumentParser
  37. parser = ArgumentParser()
  38. parser.add_argument("src")
  39. parser.add_argument("dest")
  40. parser.add_argument("-u",action="store_true", dest='undo')
  41. args, unparsed = parser.parse_known_args()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement