Sample code for 30+ languages & platforms
CkPython

Compress Text Feed to Binary

See more Compression Examples

This example receives incoming text data in chunks, compresses as a stream, and accumulates the compressed binary data.

Chilkat CkPython Downloads

CkPython
import sys
import chilkat

success = False

# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

bdCompressed = chilkat.CkBinData()

compress = chilkat.CkCompression()
compress.put_Algorithm("deflate")
compress.put_Charset("utf-8")

sbUncompressedChunk = chilkat.CkStringBuilder()

compress.put_FirstChunk(True)
compress.put_LastChunk(False)

for i in range(0,25):
    if (i == 24):
        compress.put_LastChunk(True)

    sbUncompressedChunk.Clear()
    sbUncompressedChunk.AppendInt(i)
    sbUncompressedChunk.Append(": This is a line of data to be compressed...\r\n")

    compress.CompressSb(sbUncompressedChunk,bdCompressed)

    compress.put_FirstChunk(False)

# Show the compressed data in hex format:
print("The hex encoded compressed text:")
print(bdCompressed.getEncoded("hex"))

# Now decompress in one call.  It is important to set both FirstChunk and LastChunk = True
bdDecompressed = chilkat.CkBinData()
compress.put_FirstChunk(True)
compress.put_LastChunk(True)
success = compress.DecompressBd2(bdCompressed,bdDecompressed)
if (success == False):
    print(compress.lastErrorText())
    sys.exit()

originalText = bdDecompressed.getString("utf-8")
print(originalText)