Компресия на WikiPedia dump
WikiPedia предлагат копия на всичката информация от сайта във вид на голям XML файл. Тук можете да намерите всички български страници: http://dumps.wikimedia.org/...cles.xml.bz2
Задачата ви е да напишете Python програми за компресия и декомпресия.
Първата compress.py <infile> <outfile>
трябва да
чете infile, да го компресира, и да запише компресирания файл в outfile.
Размерът на outfile
трябва да е не повече от 30% от размера на
infile
, тествано с горния XML файл.
Втората, decompress.py <infile> <outfile>
трябва да
приеме компресирания файл и да го разкомпресира до оригиналния му вид. След
декомпресия файлът трябва да е напълно идентичен с оригиналния.
Можете да ползвате познати алгоритми за компресия, като Lempel-Ziv, Huffman и
пр., но трябва да напишете кода сами, без да ползвате готови библиотеки (bzip2,
gzip, и т.н.). Решението на вашата задача трябва да е не повече от 200
килобайта. compress.py
ще бъде тестван с едногигабайтов XML
файл.
Всяка добра програма за компресия е оптимизирана за определени типове файлове (в случая XML), но работи със всякакви файлове.