如何将四个浮点数压缩成一个字符串?

时间:2015-06-10 01:25:16

标签: python encoding compression

我想以尽可能短的方式使用字符集[a..z,A..Z,0..9]代表四个浮点数,例如123.545, 56.234, -4534.234, 544.64,这样我就可以对四个浮点数进行编码并将它们存储在文件名中。这样做效率最高的是什么?

我查看了base64编码,它实际上没有压缩结果。我还研究了使用){等字符的折线编码算法,我无法做到这一点。

1 个答案:

答案 0 :(得分:1)

您可以使用struct模块将它们存储为二进制32位浮点数,并将结果编码为base64。在Python 2中:

>>> import struct, base64
>>> base64.urlsafe_b64encode(struct.pack("ffff", 123.545,56.234,-4534.234,544.64))
'Chf3Qp7vYELfsY3F9igIRA=='

可以删除== padding并重新添加以进行解码,以使base64字符串的长度为4的倍数。您还需要使用URL安全的base64来避免使用/字符。