Skip to content

Viri0x/LZW_Compression

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LZW Compress/Uncompress Algorithm

Statement:

Implement a unique python 3 script algorithm that resolve LZW compression-decompression

Only available libraries are:

  • Pandas/csv
  • Numpy
  • Argparse
----------------------

Compression

Should be called with quentin.le-helloco_LZW.py -c -p path/to/file.txt

-c is used to specified compression and -p for the path

Return

The dictionnary file as a csv myfile_dico.csv with % as the reserved character.

The text file myfile.lzw:

  • a string of the binary code as first line
  • the size before and after compression on second and third line
  • the compression rate as fourth line.

The table as if it was done by hand as a csv myfile_LZWtable.csv

----------------------
Uncompression

Should be called with quentin.le-helloco_LZW.py -u -p path/to/file.lzw

-u is used to specified uncompression and -p for the path

Unlike the compression file, this one will only have the first line (binary code) of the txt format. The dictionnary will be given in the same directory, also it should be automatically loaded with the file given in argument.

Return

The text file myfile2.txt containing the uncompressed text, to be save in the current directory of the script.

----------------------
Utils

For csv, the separator is ,.

All return files are to be written in the current directory of the script.

Particularly, the first line of csv table file should be exactly the same as the one given, as they will be tested that way

The script will be placed in a quentin.le-helloco/ directory. The parent directory will contained compression/ and decompression/ each containing the .txt and .lzw file to test

About

LZW compression school project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages