Решение на Изберете си проект от Димитър Влаховски

Обратно към всички решения

Към профила на Димитър Влаховски

Код

"""
Compression tool
Идеята ми е да направя tool, който да може да компресира файл с някакъв компресиращ алгоритъм, който да си имплементирам. Вариантите са да избера от: Huffman coding, Shannon coding, LZW, LZMA, etc. Ако мислите, че ще е твърде просто да имплементирам само един алгоритъм, може да има и повече от един.
Иначе идеята е да tool-a да приема като аргумент пътя към файла и да запазва негова компресирана версия.
Също мога да направя и GUI ползвайки PyQt.
Не знам дали като цяло идеята е достатъчно сложна за проект, вие ще кажете дали става и с какво може да се доусложни ако има нужда. :)
"""

История (1 версия и 3 коментара)

Димитър обнови решението на 22.04.2015 17:33 (преди над 9 години)

+"""
+Compression tool
+
+Идеята ми е да направя tool, който да може да компресира файл с някакъв компресиращ алгоритъм, който да си имплементирам. Вариантите са да избера от: Huffman coding, Shannon coding, LZW, LZMA, etc. Ако мислите, че ще е твърде просто да имплементирам само един алгоритъм, може да има и повече от един.
+Иначе идеята е да tool-a да приема като аргумент пътя към файла и да запазва негова компресирана версия.
+Също мога да направя и GUI ползвайки PyQt.
+
+Не знам дали като цяло идеята е достатъчно сложна за проект, вие ще кажете дали става и с какво може да се доусложни ако има нужда. :)
+
+"""

Не е лоша идея, но ако я разшириш малко.

Първо, ще трябва да може да се разкомпресира, всичко което си компресирал.

Второ, няма да е лошо да подържаш няколко формата от тези, които си изброил. И също така, ще държим да спазиш наистина алгоритмите. Ще го проверим като архивираме с друг софтуер и очакваме твоето нещо да го разархивира и обратното.

Трето, ако е конзолно ще очакваме да е с хубав конзолен интерфейс и поведение. Можеш да видиш препоръките на GNU.

В крайна сметка искам да изясниш тук по - подробно идеята си преди да се съглася. С малко повече подробности точно как и какво ще прави и да финализираш алгоритмите от които ще разбира.

Идеята ми е да направя single file compression tool, с конзолен интерфейс, който по указани command-line options (argparse) и по зададен път до файла да го компресира/разкомпресира с даден алгоритъм. Мисля да имплементирам LZW, Shannon-Fano coding, Huffman coding и опционално LZMA.
Иначе мисля, че ще се наложи да си създам собствен файлов формат за компресираните данни.
Допълнителни опции ще са по-verbose output в който се показва на колко процента е извършен процеса, elapsed time и накрая compression ratio.
Също евентуално ще направя algorithm specific options за някакъв fine-tuning на даден алгоритъм (където това е възможно)