Python - 使用ASCII存储小于256的整数

时间:2015-07-28 18:56:50

标签: python compression ascii

我有一个有序的有限整数序列。每个整数小于256且至少为零。它们可以大于127.我想使用ASCII表示将它们写入文本文件,这样我就可以将它们全部放在一行上并节省内存空间。 (如果我把它们写成整数,我必须在每个元素之间有一些分隔符,例如\t\n)。

我的想法是只取每个数字,将它们转换为相应的ASCII,然后当我需要它们时,我可以逐字逐句地将ASCII字符转换为数字。

但是,我注意到像Æ这样的字符在Python中编码实际上是两个字符\xc3\x86,而其他字符只是一个字符,如@D。所以我的方法是逐字逐句处理它不会有效。

如何使用ASCII或其他方法来节省空间呢?

2 个答案:

答案 0 :(得分:1)

应该非常简单,只需确保打开文件'wb'即可。例如:

# simulate binary 
b = [chr(c) for c in xrange(256)]

# write to file
with open('file.txt', 'wb') as fout:
    fout.write(''.join(b))

答案 1 :(得分:1)

使用数据作为无符号字符?使用numpy或struct.pack等