Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import time
- from watchdog.observers import Observer
- from watchdog.events import FileSystemEventHandler
- class NewFileHandler(FileSystemEventHandler):
- def on_created(self, event):
- if not event.is_directory:
- file_path = event.src_path
- if os.path.isfile(file_path):
- self.rename_file(file_path)
- def rename_file(self, file_path):
- timestamp = os.path.getmtime(file_path)
- formatted_timestamp = time.strftime("%Y%m%d-%H%M%S", time.localtime(timestamp))
- new_filename = f"{formatted_timestamp}.png"
- directory = os.path.dirname(file_path)
- new_file_path = os.path.join(directory, new_filename)
- # Wait for the file to be released before attempting to rename it
- max_retries = 5
- retries = 0
- while retries < max_retries:
- try:
- os.rename(file_path, new_file_path)
- print(f"Renamed '{os.path.basename(file_path)}' to '{new_filename}'")
- break
- except OSError as e:
- print(f"Error renaming file: {e}")
- print("Retrying...")
- retries += 1
- time.sleep(1)
- else:
- print(f"Failed to rename '{os.path.basename(file_path)}' after {max_retries} retries.")
- if __name__ == "__main__":
- folder_to_watch = "D:\screenshots"
- event_handler = NewFileHandler()
- observer = Observer()
- observer.schedule(event_handler, folder_to_watch, recursive=False)
- observer.start()
- print(f"Watching '{folder_to_watch}' for new files...")
- try:
- while True:
- time.sleep(1)
- except KeyboardInterrupt:
- observer.stop()
- observer.join()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement