我网上找了个例子,在python 3.7.4中运行是可以的:
import struct
a_list = [33,1,1,1,4]
with open("d:\a.bin","wb") as fp:
for x in a_list:
s = struct.pack('b',x)
fp.write(s)
fp.close()
print("done")
在ultraedit下,用16进制看。结果是对的
我用sublime查看它的结果也是对的,但是它应该是一个二进制序列,如果用记事本,打开应该是乱码。我想让它保存为二进制的方便其他程序读取
@安卓小晨:
结果对了,不就达到目标了?
二进制其实反而不方便读取啊。
@siwei718: 我需要二进制来保存特定格式的文件,我可以自定义二进制数据例如b"\xff\xff\x00\x00"写进去之后是ffff 0000,但是不知道怎么把其它类型的数据转换成这样的
@安卓小晨:
对于字符,转换为ascii码,比如a的ascii码是97,把97转换为2进制。
对于数字,直接转换为2进制,然后存到文件中了。
稍微麻烦点
@siwei718: 好,我试试这个(ꐦ ´͈ ᗨ `͈ )
@siwei718: 我明白是怎么回事了,其实使用struct.pack就可以转换成二进制的形式,只不过查看的时候显示的是字符,因为我测试的时候用的是ASCII值在0~255之间的字符。我用二进制方式读取能出来结果的。
谢谢兄弟o( ̄▽ ̄)ブ
words = 'sdasdasdasdasd'
new_str = ''
for word in words:
new_str += str(ord(word))
print(bin(int(new_str)))
谢谢兄弟,解决了