使用Python将整数和字符串列表压缩到文件中

时间:2016-01-07 19:31:56

标签: python compression binaryfiles

我有一个由“A”和“B”组成的字符串组成的列表,以及范围为0..255的整数。例如,数组可以如下所示:

L = ["ABA", 2, 3, 100, 1, "BB"]

我想把它作为压缩目的放在文件中(列表L是BWT + MTF +游程长度转换的最终产品)。我也想从那个文件中读取它。这是我尝试使用bytearray,但由于“BB”不是一个字节,它失败了:

def compresslist(L, filename):

f = open(filename, 'wb')
f.write(bytearray(L))
f.close()

1 个答案:

答案 0 :(得分:0)

  

由“A”和“B”组成的字符串

     

L = ["ABA", 2, 3, 100, 1, "BB"]

"ABAA"的简单压缩是每个字符使用1位:'A'为0,'B'为1

如果字符串永远不会超过8,则可以将它们存储在1 byte中。只有在您的列表结构固定后才能使用,即您知道bytesintegers的位置。

如果integers都小于128,strings(最多7个字符)可以存储在7位中,最高位表示它是压缩字符串。