Python“ wb”写入模式将0x0A添加到文件

时间:2019-08-05 19:15:32

标签: python

我正在尝试将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

1 个答案:

答案 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)

enter image description here

可以看到Python file.write creating extra carriage return

希望有帮助