Python写入二进制文件

2020-01-19 14:23发布

问题:

我想用python写入二进制的文件,例如字符串"abcd"写为6162 6364(十六进制),我用struct模块存储后发现struct只是把字符串转换为字节,实际写入的内容还是字符串,不是二进制序列。
我打开的方式是二进制写

怎么才会写入二进制序列(0101)呢?

回答1:

我网上找了个例子,在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进制看。结果是对的



回答2:

words = 'sdasdasdasdasd'
new_str = ''
for word in words:
    new_str += str(ord(word))
print(bin(int(new_str)))