파이썬을 이용해서 긴 텍스트를 압축하는 예시이다. 압축을 하기 위해서는 문자열(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
'파이썬(python)' 카테고리의 다른 글
파이썬(python)을 이용해서 파일명 변경 (0) | 2024.09.20 |
---|---|
파이썬(python)에서 파일의 MD5 해시(hash)값 계산 (0) | 2024.08.12 |
파이썬(python)을 이용에서 이메일(eml) 파일의 본문 확인하기 (0) | 2024.06.25 |
파이썬(python)을 이용해서 문자열에 일본 글자가 있는지 확인 (0) | 2024.06.07 |
파이썬(python)을 이용해서 이메일(eml) 파일의 보낸 사람, 받는 사람, 제목 확인하기 (0) | 2024.04.09 |