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

Eri*_*eid 2 python

我正在试图弄清楚如何使用Python更新二进制文件中的数据.

我已经习惯使用"数组"阅读和编写完整的文件,但我在编辑时遇到了麻烦.

这是我尝试过的:

my_file.seek(100)

my_array = array.array('B')
my_array.append(0)
my_array.tofile(my_file)
Run Code Online (Sandbox Code Playgroud)

本质上,我想更改位置100处的字节值.上面的代码确实更新了值,但随后截断了文件的其余部分.我希望能够更改位置100的值,而无需修改文件中的任何其他内容.

请注意,我正在编辑多千兆字节的文件,所以我不想将整个内容读入内存,更新内存,然后写回磁盘.

Rob*_*let 5

根据文档open(),您应该以'rb+'模式打开文件以避免截断行为.