def get_event_handler(converter): def on_created(event): converter(event.src_path) def on_modified(event): print(f'[MODIFIED] {event.__dict__}') handler = RegexMatchingEventHandler(regexes=[r".*[.]djvu"]) handler.on_created = on_created handler.on_modified = on_modified return handler
def start(self): """ Starts watchdog thread to monitor for incoming files. Calls the child class's `read` method when a new file appears. """ print 'FileSource start method called...', self.directory event_handler = RegexMatchingEventHandler(regexes=['.*'], ignore_regexes=[], ignore_directories=False, case_sensitive=False) event_handler.on_created = self.read # Call child's `read` method event_handler.on_modified = self.read watch_path = self.directory observer = Observer() observer.schedule(event_handler, watch_path, recursive=False) observer.start() print 'observer started.'
def main(): if len(sys.argv) < 2: print(f"Error: At least one arg is required. Usage: miro_uploader <destination_path> [monitored_path]") exit(1) destination_path = sys.argv[1] monitored_path = sys.argv[2] if len(sys.argv) > 2 else '.' def on_created(event): print(f"hey, {event.src_path} has been created!") def on_modified(event): try: print(f"hey buddy, {event.src_path} has been modified") return_path = copy2(event.src_path, destination_path) print(f"hey, that a copy path {return_path}") remove(event.src_path) except Exception: pass event_handler = RegexMatchingEventHandler(regexes=[r"^[\x00-\x7F]*jpg$"], ignore_directories=True, case_sensitive=False) event_handler.on_created = on_created event_handler.on_modified = on_modified observer = Observer() observer.schedule(event_handler, monitored_path, recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() finally: observer.stop() observer.join()
FORMAT = '%(asctime)-15s %(message)s' logging.basicConfig(filename='/tmp/watchdog.log', level=logging.INFO, format=FORMAT) logging.info('Started') path = sys.argv[1] if len(sys.argv) > 1 else '/home/norbert/Desktop' patterns = ['.+'] ignore_patterns = [f"^{path}\.+"] ignore_dirs = False case_sensitive = True my_event_handler = RegexMatchingEventHandler(patterns, ignore_patterns, ignore_dirs, case_sensitive) my_event_handler.on_created = on_created my_event_handler.on_deleted = on_delete my_event_handler.on_moved = on_moved my_event_handler.on_modified = on_modified go_recursively = True my_observer = Observer() my_observer.schedule(my_event_handler, path, recursive=go_recursively) my_observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: my_observer.stop()
def main(argv): ################################################### get options global path global my_observer global stop print(str(argv)) print(len(argv)) if len(argv) ==1: print('add parameters: ') params=input().split(' ') else: params=argv[1:] try: opts, args = getopt.getopt( params ,"hp:",["help","path="]) print('try ok') except getopt.GetoptError: print('file_sync_to_gdrive_windows -p "path/to/git/project') sys.exit(2) print('opts'+str(opts)) print('args'+str(args)) if len(opts) < len(args): print('file_sync_to_gdrive_windows -p "path/to/git/project') exit() for opt, arg in opts: if opt in ('-h','--help'): print('file_sync_to_gdrive_windows -p "path/to/git/project') sys.exit() elif opt in ("-p", "--path"): path = arg print("incase of module log path:" + path + "\\auto_sync_console.log") log('path:' + path) else: print('not recognize') #patterns = ["*"] #ignore_patterns = [".*git"] ignore_directories = False case_sensitive = True #my_event_handler = PatternMatchingEventHandler(patterns, ignore_patterns, ignore_directories, case_sensitive) regexes = [".+"] #ignore = ".*c:/Users/eharvin/OneDrive - Ericsson AB/000Vince/programming/git/scripts\\\\.git.*" #c:/Users/eharvin/OneDrive - Ericsson AB/000Vince/programming/git/scripts #ignore_windows = "^" + path + "\\\\.git.*" #ignore_regexes = [".*\\\\.git$"] #ignore_regexes = ["git"] #ignore_linux = "^" + path + "/\\.git.*" #ignore_regexes = [ignore_windows, ignore_linux] #log("ignore: " + ignore_linux) if os.name == 'nt': ignore = "^" + re.escape(path) + "\\\\\\.git.*" else: ignore = "^" + path + "/\\.git.*" log("ignore: " + ignore) ignore_regexes = [ignore] my_event_handler = RegexMatchingEventHandler (regexes=regexes,ignore_regexes=ignore_regexes, ignore_directories=ignore_directories, case_sensitive=case_sensitive) my_event_handler.on_created = on_created my_event_handler.on_deleted = on_deleted my_event_handler.on_modified = on_modified my_event_handler.on_moved = on_moved go_recursively = True my_observer = Observer() my_observer.schedule(my_event_handler, path, recursive=go_recursively) my_observer.start() try: while True: time.sleep(1) if stop: break except KeyboardInterrupt: my_observer.stop() my_observer.join()
print(f'Connected to {device.name}') # Define what to do when data is detected def onDataDetected(event): device.addData(fieldName='Raw Data File', fieldType='file', filepath=event.src_path) # Use watchdog built in regex event handler # This will detect files that end in .csv my_event_handler = RegexMatchingEventHandler([r".*\.csv$"]) # Set the handler for when files are created my_event_handler.on_created(onDataDetected) # Set up the watchdog observer to watch a specific folder my_observer = Observer() path = '/path/to/device/output/folder' my_observer.schedule(my_event_handler, path) # Start the observer my_observer.start() # Set up loop to stop the script terminating unless interupted try: while True: time.sleep(1) except KeyboardInterrupt: my_observer.stop() my_observer.join()