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

Python - Storing integers all less than 256 with ASCII

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

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

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

如何使用 ASCII 或其他一些方法来保存 space?

应该很简单,只需确保打开文件 '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))

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