【发布时间】:2013-11-01 13:44:11
【问题描述】:
我有一个包含 HEX 数据流的 txt 文件,我想将其转换为二进制格式以节省磁盘空间。
这是我的简单脚本,只是为了测试解码和二进制存储
hexstr = "12ab"
of = open('outputfile.bin','wb')
for i in hexstr:
#this is how I convert an ASCII char to 7 bit representation
x = '{0:07b}'.format(ord(i))
of.write(x)
of.close()
我希望 outputfile.bin 的大小为 28 位,而不是结果为 28 字节。 我想问题是 x 是一个字符串而不是一个位序列。
我该怎么办?
提前致谢
【问题讨论】:
-
是的,python 的
filobject.write需要一个字符串,所以它可能也将它写成一个字符串。 -
我认为 binascii 模块可能是您正在寻找的......
-
你看到this的问题了吗?请注意,为每个 ASCII 字符存储 7 位只会为每 8 个字符节省 1 个八位字节 - 可能更少,具体取决于您的文件系统。
-
什么是“十六进制数据流”? “带有 HEX 数据流的 txt 文件”是什么意思?
标签: python file python-2.7 binary