Directory Monitor GUI is a self-contained Python application with a Tkinter interface for configuring and monitoring multiple directories via polling. Add or remove folders, set polling intervals, toggle recursive scans and hidden entries, apply include/exclude glob filters, and view real-time logs in-app or export to a file. Use Start/Stop buttons to control sessions.
Languages English and Italian interfaces in two standalone scripts:
- main_eng.py – English UI and prompts
- main_ita.py – Italian UI and prompts
Author: Bocaletto Luca
License: GPL v3
- Overview
- Features
- Repository Structure
- Requirements
- Installation
- Usage
- Configuration Options
- Logging
- License
Directory Monitor is a lightweight, text-menu tool written in pure Python (stdlib only) that lets you watch one or more folders for filesystem changes via polling. It detects:
- File and folder creation
- Deletion
- Modification
You can configure recursive scans, include/exclude hidden entries, and apply advanced glob filters. Press ESC at any time during monitoring to stop and return to the menu.
- Monitor multiple directories simultaneously
- Recursive or non-recursive scanning
- Toggle hidden file/folder inclusion
- Glob-based include/exclude filters
- Configurable polling interval
- Real-time console and optional file logging
- Easily switch between English and Italian interfaces
- No external dependencies (Python 3.6+ stdlib only)
Directory-Monitor/
├── LICENSE
├── README.md
├── main_eng.py # English interface
└── main_ita.py # Italian interface
- Python 3.6 or later
- Standard library modules only:
os
,sys
,time
,fnmatch
,logging
,termios
,tty
,select
,pathlib
- No third-party packages required
-
Clone the repository
git clone https://github.com/bocaletto-luca/Directory-Monitor.git cd Directory-Monitor
-
(Optional) Make scripts executable
chmod +x main_eng.py main_ita.py
Run the script corresponding to your preferred language:
python3 main_eng.py
# Or, if executable:
./main_eng.py
python3 main_ita.py
# Or, if executable:
./main_ita.py
Follow the on-screen menu to configure directories, polling interval, recursion, hidden files, filters, and logging.
Once you start the script, you can:
- Add/Remove Directories
- Set Polling Interval (in seconds)
- Toggle Recursive Scan
- Toggle Hidden Entries
- Manage Advanced Filters
- Include patterns (e.g.
*.log
,data/**/*.csv
) - Exclude patterns (e.g.
temp/*
,*/.git/*
)
- Include patterns (e.g.
- Specify Log File (or use stdout)
- Start/Stop Monitoring (press ESC to stop)
- Exit
Events are logged in the format:
YYYY-MM-DD HH:MM:SS,mmm LEVEL [base_path] +Added FILE: example.txt
YYYY-MM-DD HH:MM:SS,mmm LEVEL [base_path] *Modified DIR : docs/
YYYY-MM-DD HH:MM:SS,mmm LEVEL [base_path] -Removed FILE: old.log
+Added
→ new file/folder*Modified
→ timestamp changed-Removed
→ file/folder deleted
Logs appear in the console by default. To capture them in a file, specify a logfile path in the menu.
This project is released under the GNU General Public License v3.0.
See the LICENSE file for details.
© 2025 Bocaletto Luca
https://github.com/bocaletto-luca/Directory-Monitor