22 lines
No EOL
622 B
Python
22 lines
No EOL
622 B
Python
from huffman import (
|
|
get_frequencies,
|
|
make_tree,
|
|
make_codes,
|
|
encode_flow,
|
|
decode_flow
|
|
)
|
|
|
|
with open("useless.map", "rb") as f_in:
|
|
frequencies = get_frequencies(f_in)
|
|
total_bytes = f_in.seek(0, 2) # длина исходного файла
|
|
f_in.seek(0)
|
|
|
|
nodes, root_idx = make_tree(frequencies)
|
|
|
|
codes = make_codes(nodes, root_idx)
|
|
|
|
with open("useless.map", "rb") as f_in, open("useless.huff", "wb") as f_out:
|
|
encode_flow(f_in, f_out, codes)
|
|
|
|
with open("useless.huff", "rb") as f_in, open("useless_decoded.map", "wb") as f_out:
|
|
decode_flow(f_in, f_out, nodes, root_idx, total_bytes) |