Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import psutil
- import sys
- import time
- import logging
- from watchdog.observers import Observer
- from watchdog.events import FileSystemEventHandler
- import os.path
- import os
- import shutil
- mypath = "C:/Users/Valon/Downloads/testing"
- def createFolder(path):
- try:
- os.makedirs(path, 0o777)
- except OSError:
- print("Creation of the directory %s failed" % path)
- else:
- print("Successfully created the directory %s " % path)
- def dirExits(path):
- return os.path.isdir(path)
- def getExtension(path):
- return os.path.splitext(path)[1].split('.')[1]
- def moveFile(src, dst):
- shutil.move(src, dst)
- def has_handle(fpath):
- for proc in psutil.process_iter():
- try:
- for item in proc.open_files():
- if fpath == item.path:
- return True
- except Exception:
- pass
- return False
- class Handler(FileSystemEventHandler):
- def __init__(self):
- super(Handler, self).__init__()
- self.last_created = ""
- def on_created(self, event):
- if not event.is_directory and self.last_created != event.src_path :
- self.last_created = event.src_path
- extension = getExtension(event.src_path)
- newPath = mypath + '/' + extension
- if (not dirExits(newPath)):
- createFolder(mypath + '/' + extension)
- i = 0
- while(has_handle(event.src_path)):
- print("checked if file is being used %s", i)
- i += 1
- print("how many times did it check : %s", i)
- moveFile(event.src_path, newPath)
- if __name__ == "__main__":
- logging.basicConfig(level=logging.INFO,
- format='%(asctime)s - %(message)s',
- datefmt='%Y-%m-%d %H:%M:%S')
- event_handler = Handler()
- observer = Observer()
- observer.schedule(event_handler, mypath, recursive=False)
- observer.start()
- try:
- while True:
- time.sleep(1)
- print("waiting...")
- except KeyboardInterrupt:
- observer.stop()
- observer.join()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement