Advertisement
Guest User

Untitled

a guest
Dec 14th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.15 KB | None | 0 0
  1. import psutil
  2. import sys
  3. import time
  4. import logging
  5. from watchdog.observers import Observer
  6. from watchdog.events import FileSystemEventHandler
  7. import os.path
  8. import os
  9. import shutil
  10. mypath = "C:/Users/Valon/Downloads/testing"
  11.  
  12.  
  13. def createFolder(path):
  14.     try:
  15.         os.makedirs(path, 0o777)
  16.     except OSError:
  17.         print("Creation of the directory %s failed" % path)
  18.     else:
  19.         print("Successfully created the directory %s " % path)
  20.  
  21.  
  22. def dirExits(path):
  23.     return os.path.isdir(path)
  24.  
  25.  
  26. def getExtension(path):
  27.     return os.path.splitext(path)[1].split('.')[1]
  28.  
  29.  
  30. def moveFile(src, dst):
  31.     shutil.move(src, dst)
  32.  
  33.  
  34. def has_handle(fpath):
  35.     for proc in psutil.process_iter():
  36.         try:
  37.             for item in proc.open_files():
  38.                 if fpath == item.path:
  39.                     return True
  40.         except Exception:
  41.             pass
  42.  
  43.     return False
  44.  
  45.  
  46.  
  47.  
  48. class Handler(FileSystemEventHandler):
  49.  
  50.     def __init__(self):
  51.         super(Handler, self).__init__()
  52.         self.last_created = ""
  53.  
  54.     def on_created(self, event):        
  55.         if not event.is_directory and self.last_created != event.src_path :
  56.             self.last_created = event.src_path
  57.             extension = getExtension(event.src_path)
  58.             newPath = mypath + '/' + extension
  59.             if (not dirExits(newPath)):
  60.                 createFolder(mypath + '/' + extension)
  61.             i = 0
  62.             while(has_handle(event.src_path)):
  63.                 print("checked if file is being used %s", i)
  64.                 i += 1
  65.  
  66.             print("how many times did it check : %s", i)
  67.             moveFile(event.src_path, newPath)
  68.  
  69.  
  70. if __name__ == "__main__":
  71.     logging.basicConfig(level=logging.INFO,
  72.                         format='%(asctime)s - %(message)s',
  73.                         datefmt='%Y-%m-%d %H:%M:%S')
  74.  
  75.     event_handler = Handler()
  76.     observer = Observer()
  77.     observer.schedule(event_handler, mypath, recursive=False)
  78.     observer.start()
  79.     try:
  80.         while True:
  81.             time.sleep(1)
  82.             print("waiting...")
  83.     except KeyboardInterrupt:
  84.         observer.stop()
  85.     observer.join()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement