我有一个有序的有限整数序列。每个整数小于256且至少为零。它们可以大于127.我想使用ASCII表示将它们写入文本文件,这样我就可以将它们全部放在一行上并节省内存空间。 (如果我把它们写成整数,我必须在每个元素之间有一些分隔符,例如\t
或\n
)。
我的想法是只取每个数字,将它们转换为相应的ASCII,然后当我需要它们时,我可以逐字逐句地将ASCII字符转换为数字。
但是,我注意到像Æ
这样的字符在Python中编码实际上是两个字符\xc3\x86
,而其他字符只是一个字符,如@
和D
。所以我的方法是逐字逐句处理它不会有效。
如何使用ASCII或其他方法来节省空间呢?
答案 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等