【发布时间】:2019-08-05 19:15:32
【问题描述】:
我正在尝试将 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
【问题讨论】:
-
文件有 32 字节字节 VIM 显示 33 字节。也许 VIM 仅在显示时才在屏幕上添加此值。使用 VIM 前后文件的大小是多少?也许找到不同的编辑器来检查文件 - 或编写显示数据的脚本。
-
测试评论dddd
-
我无法重现您的问题 - 当我在 Linux 上显示
od test.bin(或od -t x1 test.bin)以查看十六进制代码时,我只看到 32 个字节而没有0x0A。而f.write()不能添加新行。 -
xxd test.bin也是如此 - 没有0x0A,它也只显示 32 个字节。
标签: python