Skip to content

Danjamesd/python_file_organiser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

File organiser to watch a directory and monitor any changes to the dir. Any files added will be placed into categorical folders (pics, docs, binaries, scripts etc).

Fixes:

Fix the current while loop bug where the code only creates folder and files once the watchdog is terminated.

Here is the recommended fix according to chatgpt:

BEGIN

IMPORT necessary modules:
    - watchdog.observers.Observer
    - watchdog.events.FileSystemEventHandler
    - os, time, pathlib, logging

DEFINE a dictionary of file types and their target folders:
    - Example: {"documents": [".pdf", ".docx"], "pictures": [".jpg", ".png"]}

CONFIGURE logging to print and/or save events

DEFINE FileEventHandler class (inherits from FileSystemEventHandler):

    METHOD on_created(event):
        IF event is a directory:
            RETURN (ignore)
        
        EXTRACT the file extension from the event's path
        FOR each category and list of extensions in file_types:
            IF the extension matches:
                CREATE destination folder if it doesn't exist
                MOVE the file into the destination folder
                LOG the move
                BREAK (stop checking other categories)

DEFINE start_watching(directory):

    CREATE FileEventHandler instance
    CREATE Observer
    SCHEDULE the handler to watch the given directory
    START the observer
    LOG that watching has started

    LOOP:
        Sleep briefly (e.g., 1 second)
        (Keeps program alive to watch files)

    ON KeyboardInterrupt (Ctrl+C):
        STOP the observer
        LOG that watcher has stopped
    JOIN observer thread

IN MAIN:
    SET the folder to watch (e.g., current working directory)
    CALL start_watching with this folder

END

Use the fileWatcher to manage all the logig and infrastructure

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages