파이썬(python)2024. 7. 21. 08:38

파이썬을 이용해서 긴 텍스트를 압축하는 예시이다. 압축을 하기 위해서는 문자열(str) 형식을 우선 바이트(byte)로 변환해서 압축한다. 압축은 zlib 모듈을 이용할 수 있다. 압축한 결과를 문자열 형태로 표시하기 위해 베이스64(base64) 인코딩을 사용했다. 

 

import zlib
import base64

my_text = '이것은 시험용 텍스트입니다. This is a text for test.'

# 문자열 -> 바이트 변환
my_text_bytes = my_text.encode('utf-8')

# 압축: zlib.compress()
my_comp = zlib.compress(my_text_bytes)

# 베이스64 인코딩(출력: 바이트)
my_comp_b64 = base64.b64encode(my_comp)

# 바이트 -> 문자열 변환
my_comp_b64_str = my_comp_b64.decode('utf-8')
print(my_comp_b64_str)

 

별로 길지 않은 텍스트로 시험해 보면 압축한 결과가 오히려 더 길이가 길 수 있다. 하지만 매우 긴 문자열이라면 압축 효과를 볼 수 있다. 

위에서 압축 및 베이스64 인코딩을 거친 결과물은 역순으로 작업해서 복원하면 된다. 

 

# 문자열 -> 바이트 변환후 베이스64 디코딩
my_comp_b64_dec = base64.b64decode(my_comp_b64_str.encode('utf-8'))

# 압축 풀기: zlib.decompress()
my_decomp = zlib.decompress(my_comp_b64_dec)

# 바이트 -> 문자열 변환
my_text_restored = my_decomp.decode('utf-8')
print(my_text_restored)

 

728x90
Posted by 반달가면