Python BackUp is a small backup utility with a Tkinter GUI. You can run a one-off backup or schedule recurring copies of a folder to a destination. Results are logged to CSV files under logs/.
- Browse folders: Pick source and destination directories.
- Backup Now: Copy immediately using only source and destination (no schedule required).
- Schedule backups: Set interval (days) and 24-hour time
HH:MM(e.g.09:00,14:30), then Start Backup to run on that schedule. - Stop: Cancel an in-progress copy and stop the scheduler at any time.
- Incremental copies: Files that already match the destination are skipped.
- CSV logs (appended across runs):
logs/copy_success.csvandlogs/copy_errors.csv. Paths are properly quoted, so commas in file paths never corrupt the columns.
- Python 3.x
- Tkinter (usually included with Windows/macOS Python from python.org)
schedule
-
Clone the repository:
git clone https://github.com/stephenvowell/PythonBackUp.git cd PythonBackUp -
Install dependencies:
pip install -r requirements.txt
From the project directory:
python backup_v2.py- Choose Source and Destination folders (Browse or type paths).
- Optional — Backup Now to copy once right away.
- For scheduling, fill Interval (days) and Time (24-hour HH:MM), then Start Backup. The scheduled job runs at that clock time; use Backup Now if you also need an immediate copy.
- Press Stop to cancel a running copy or halt the scheduler.
On Windows PowerShell 5.x, chain commands with ; instead of &&, for example:
Set-Location C:\path\to\PythonBackUp; python backup_v2.pybackup_v2.py— the Tkinter GUI application.backup_core.py— GUI-free copy/validation/logging logic (imported by the GUI and covered by tests).
Produce a single-file .exe that runs without a Python install:
pip install -r requirements-dev.txt
.\build_exe.ps1The executable is written to dist\PythonBackUp.exe.
pip install -r requirements-dev.txt
pytestContributions are welcome. Fork the repository and open a pull request.
This project is licensed under the MIT License.