Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to compress or compact a string in Python

Tags:

I'm making a python "script" that sends a string to a webservice (in C#). I NEED to compress or compact this string, because the bandwidth and MBs data is LIMITED (yeah, in capitals because it's very limited).

I was thinking of converting it into a file and then compressing the file. But I'm looking for a method to directly compress the string.

How can I compress or compact the string?

like image 896
Santiago Mendoza Ramirez Avatar asked Mar 24 '15 21:03

Santiago Mendoza Ramirez


2 Answers

How about zlib?

import zlib  a = "this string needs compressing" a = zlib.compress(a.encode()) print(zlib.decompress(a).decode())  # outputs original contents of a 

You can also use sys.getsizeof(obj) to see how much data an object takes up before and after compression.

like image 110
hmir Avatar answered Sep 19 '22 08:09

hmir


import sys import zlib   text=b"""This function is the primary interface to this module along with  decompress() function. This function returns byte object by compressing the data  given to it as parameter. The function has another parameter called level which  controls the extent of compression. It an integer between 0 to 9. Lowest value 0  stands for no compression and 9 stands for best compression. Higher the level of  compression, greater the length of compressed byte object."""  # Checking size of text text_size=sys.getsizeof(text) print("\nsize of original text",text_size)  # Compressing text compressed = zlib.compress(text)  # Checking size of text after compression csize=sys.getsizeof(compressed) print("\nsize of compressed text",csize)  # Decompressing text decompressed=zlib.decompress(compressed)  #Checking size of text after decompression dsize=sys.getsizeof(decompressed) print("\nsize of decompressed text",dsize)  print("\nDifference of size= ", text_size-csize) 

enter image description here

like image 25
SATISH JARANG Avatar answered Sep 20 '22 08:09

SATISH JARANG