我想以尽可能短的方式使用字符集[a..z,A..Z,0..9]代表四个浮点数,例如123.545, 56.234, -4534.234, 544.64
,这样我就可以对四个浮点数进行编码并将它们存储在文件名中。这样做效率最高的是什么?
我查看了base64编码,它实际上没有压缩结果。我还研究了使用)
和{
等字符的折线编码算法,我无法做到这一点。
答案 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来避免使用/字符。