Автор: Попов Михаил (LDG200@yandex.ru)
Описание: Данное консольное приложение позволяет архивировать и разархивировать текстовые файлы и папки
Инструкция:
- Перед использование архиватора надо перейти в тот каталог (который будем называть рабочим), где будут хранится файлы и каталоги, которые мы хотим заархивировать
- Для того, чтобы каждый раз не прописывать длинный путь до исполняемого .py файла, а писать просто
HUFFMANв консоли, надо добавить путь до каталога с этим проектом в PATH:C:<path>\HuffmanCompression- это тот путь, который надо добавить в PATH- В командной строке пишем
set path=%path%;C:<path>\HuffmanCompression- эта команда добавляет наш путь в PATH (Это команда работает на windows) (Можно ещё вручную добавить наш путь в PATH)
Команды:
- archive [archive_folder_name] [archive_objects]
archive- архивировать файлы / каталогиarchive_folder_name- имя папки, в которую мы хотим заархивировать файлы / каталогиarchive_objects- файлы / каталоги, которые мы хотим заархивировать в рабочей директории (Если archive_objects = '*', то архивироваться будут все файлы/каталоги в рабочей директории)
HUFFMAN archive MYZIP text1.txt folder text2.txt
HUFFMAN archive MYZIP * - unarchive [archive_folder] --destination [destination]
unarchive- разархивировать папкуarchive_folder- имя или путь заархивированной папки. Если указано просто имя, то в рабочей директории ищется папка с именемarchive_folderdestination- путь, куда будет разархивироваться папка. По умолчанию папка будет разархивироваться в той директории, где была определена архивированная папкаarchive_folder
HUFFMAN unarchive MYZIP --destination "C:<destination path>"HUFFMAN unarchive MYZIP
HUFFMAN unarchive "C:<archive folder path>"
Подробности реализации:
В папке src находятся модули, отвечающие за логику приложения:
Huffman.pyотвечает за алгоритм сжатия файловconsole.pyотвечает за взаимодействие с консольюsetter_time.pyустанавливает время для папок и файловarchiver.pyсодержит логику архиватора
На модули Huffman.py и archiver.py написаны тесты, которые можно найти в папке tests. Покрытие по строкам составляет около 94 %:
| Name | Stmts | Miss | Cover |
|---|---|---|---|
| Huffman.py | 93 | 4 | 96% |
| archiver.py | 178 | 9 | 95% |
| setter_time.py | 31 | 5 | 84% |
| Total | 302 | 18 | 94% |