我正在尝试将32个字节的二进制数据写入文件,但正在添加一个额外的字节
wb
模式似乎不接受换行符,因此我不确定在这里做什么。
str_ = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
with open('test.bin', 'wb') as f:
f.write(str_)
您必须在十六进制编辑器中查看文件,才能看到所添加的额外字节。 来自VIM的文件的十六进制视图:https://i.imgur.com/0VcjTCT.png
答案 0 :(得分:-1)
os.system('touch efuse.bin')
with open('efuse.bin', 'wb') as f:
f.write(generateBinString())
为什么要写newline =“”
c=b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
with open('efuse.bin', 'wb') as f:
f.write(c.rstrip())
with open('efuse.bin', 'rb') as f:
print(f.read())
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
换行(0A)和回车(0D)
可以看到Python file.write creating extra carriage return
希望有帮助