用Python更新二进制文件中的值

2 投票
2 回答
1570 浏览
提问于 2025-04-15 16:21

我正在尝试用Python更新一个二进制文件中的数据。

我已经能熟练地使用“array”来读取和写入完整的文件,但在进行就地编辑时遇到了困难。

这是我尝试过的:

my_file.seek(100)

my_array = array.array('B')
my_array.append(0)
my_array.tofile(my_file)

简单来说,我想要改变位置100的字节值。上面的代码确实更新了这个值,但同时也截断了文件的其余部分。我希望能在不修改文件其他内容的情况下,仅仅改变位置100的值。

请注意,我正在编辑的是多吉字节的文件,所以我不想把整个文件都读入内存,更新后再写回磁盘。

2 个回答

1

你是以 'r+b' 模式打开这个文件吗?

5

根据关于open()的说明,你应该以'rb+'模式打开文件,这样可以避免文件被截断的问题。

撰写回答