A lightweight desktop app for compressing and extracting ZIP archives.
Built with Python and FreeSimpleGUI — a first dive into building real GUI applications.
- 📦 Compress: Select multiple files at once and pack them into a
compressed.zipin any destination folder. - 📂 Extract: Pick any
.ziparchive and extract its contents to a chosen directory. - 🖱️ File Browsing: Native file and folder dialogs — no manual path typing needed.
- ✅ Feedback: Success and error messages update directly in the window after every action.
- 🗂️ Tabbed Layout: Compress and Extract live in clean separate tabs — no clutter.
The GUI in main.py is kept completely separate from the logic. All compression and extraction is handled by two small utility modules using Python's built-in zipfile library:
# zip_creator.py — packs multiple files into one archive
def make_archive(filepaths, dest_dir):
dest_dir = pathlib.Path(dest_dir, "compressed.zip")
with zipfile.ZipFile(dest_dir, "w") as archive:
for filepath in filepaths:
filepath = pathlib.Path(filepath)
archive.write(filepath, arcname=filepath.name)
# zip_extractor.py — unpacks an archive to a target folder
def extract_archive(archive_path, dest_dir):
with zipfile.ZipFile(archive_path, "r") as archive:
archive.extractall(dest_dir)The main event loop reads GUI events with a match statement and delegates to the right utility — keeping main.py clean and readable.
Archive-Manager/
├── utils/
│ ├── zip_creator.py # Compression logic
│ └── zip_extractor.py # Extraction logic
├── main.py # GUI layout & event loop
├── requirements.txt # Python dependencies
└── README.md
-
Clone the repository:
git clone https://github.com/AndrewTechTips/Archive-Manager.git cd Archive-Manager -
Install dependencies:
pip install -r requirements.txt
-
Run the app:
python main.py
- LinkedIn: Andrei Condrea
- Email: condrea.andrey777@gmail.com
"Everything fits better in a zip." 🗜️