如何在 Python 中压缩文本以仅使用某些字符?

问题描述 投票:0回答:1

如何在Python中压缩文本,但输出字符串只包含大小写字母、数字、“.” (点)和“_”(下划线)。

这是一个可行的示例,但输出不包含任何小写字母或点,因此压缩效率会较低。

import base64
import zlib

def compress(s):
  return base64.b32encode(zlib.compress(s,level=9)).decode("ascii").replace("=","-")
print(compress(b"abc"))
python text compression byte encode
1个回答
0
投票

你为什么不试试base64?我将代码重写为以下内容:

import base64
import zlib

def compress_64(s):
    return base64.b64encode(zlib.compress(s, level=9)).decode("ascii").replace(
        "=", "-")

print(compress_64(b"abc"))

输出是

eNpLTEoGAAJNASc-
,与之前的输出相比,它更短并且包含更多字符,即
PDNEWTCKAYAAETIBE4------

但是,base32 和 base64 都不是为压缩而设计的 - 它在编码后通常会占用更多空间。

© www.soinside.com 2019 - 2024. All rights reserved.