如何压缩或压缩 Python 中的字符串
How to compress or compact a string in Python
我正在制作一个 python "script" 将字符串发送到网络服务(在 C# 中)。我需要压缩或压缩这个字符串,因为带宽和 MB 数据是有限的(是的,大写字母因为它非常有限)。
我想把它转换成一个文件,然后压缩文件。但是我正在寻找一种直接压缩字符串的方法。
如何压缩字符串?
zlib怎么样?
import zlib
a = "this string needs compressing"
a = zlib.compress(a.encode())
print(zlib.decompress(a).decode()) # outputs original contents of a
您还可以使用sys.getsizeof(obj)
查看对象在压缩前后占用了多少数据。
import sys
import zlib
text=b"""This function is the primary interface to this module along with
decompress() function. This function returns byte object by compressing the data
given to it as parameter. The function has another parameter called level which
controls the extent of compression. It an integer between 0 to 9. Lowest value 0
stands for no compression and 9 stands for best compression. Higher the level of
compression, greater the length of compressed byte object."""
# Checking size of text
text_size=sys.getsizeof(text)
print("\nsize of original text",text_size)
# Compressing text
compressed = zlib.compress(text)
# Checking size of text after compression
csize=sys.getsizeof(compressed)
print("\nsize of compressed text",csize)
# Decompressing text
decompressed=zlib.decompress(compressed)
#Checking size of text after decompression
dsize=sys.getsizeof(decompressed)
print("\nsize of decompressed text",dsize)
print("\nDifference of size= ", text_size-csize)
我正在制作一个 python "script" 将字符串发送到网络服务(在 C# 中)。我需要压缩或压缩这个字符串,因为带宽和 MB 数据是有限的(是的,大写字母因为它非常有限)。
我想把它转换成一个文件,然后压缩文件。但是我正在寻找一种直接压缩字符串的方法。
如何压缩字符串?
zlib怎么样?
import zlib
a = "this string needs compressing"
a = zlib.compress(a.encode())
print(zlib.decompress(a).decode()) # outputs original contents of a
您还可以使用sys.getsizeof(obj)
查看对象在压缩前后占用了多少数据。
import sys
import zlib
text=b"""This function is the primary interface to this module along with
decompress() function. This function returns byte object by compressing the data
given to it as parameter. The function has another parameter called level which
controls the extent of compression. It an integer between 0 to 9. Lowest value 0
stands for no compression and 9 stands for best compression. Higher the level of
compression, greater the length of compressed byte object."""
# Checking size of text
text_size=sys.getsizeof(text)
print("\nsize of original text",text_size)
# Compressing text
compressed = zlib.compress(text)
# Checking size of text after compression
csize=sys.getsizeof(compressed)
print("\nsize of compressed text",csize)
# Decompressing text
decompressed=zlib.decompress(compressed)
#Checking size of text after decompression
dsize=sys.getsizeof(decompressed)
print("\nsize of decompressed text",dsize)
print("\nDifference of size= ", text_size-csize)