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等
我有一个有序的有限整数序列。每个整数都小于 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等