Вход | Регистрация

Компресия на 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), но работи със всякакви файлове.