# Python Zlib Module

The `zlib` module provides access to the zlib library for data compression and decompression. It is compatible with the gzip file format.

## Importing the Module

```python
import zlib
```

## Compression

### `zlib.compress()`

Compresses the bytes in `data`.

```python
import zlib

data = b'Hello, world! Hello, world! Hello, world!'
compressed_data = zlib.compress(data)

print(f"Original size: {len(data)}")
print(f"Compressed size: {len(compressed_data)}")
```

### Compression Levels

You can specify a compression level from 0 (no compression) to 9 (best compression). The default is 6.

```python
compressed_data = zlib.compress(data, level=9)
```

## Decompression

### `zlib.decompress()`

Decompresses the bytes in `data`.

```python
decompressed_data = zlib.decompress(compressed_data)
print(decompressed_data)
# Output: b'Hello, world! Hello, world! Hello, world!'
```

## Checksums

The `zlib` module can calculate checksums (CRC32 and Adler32) to verify data integrity.

### `zlib.crc32()`

Computes a CRC (Cyclic Redundancy Check) checksum of data.

```python
import zlib

data = b'Hello, world!'
checksum = zlib.crc32(data)
print(f"CRC32: {checksum}")
```

### `zlib.adler32()`

Computes an Adler-32 checksum of data.

```python
import zlib

data = b'Hello, world!'
checksum = zlib.adler32(data)
print(f"Adler32: {checksum}")
```

[[programming/python/python]]