用Python更新二进制文件中的值
我试图弄清楚如何使用Python更新二进制文件中的数据 我已经习惯于使用“数组”阅读和编写完整的文件,但我在就地编辑方面遇到了麻烦 以下是我尝试过的:用Python更新二进制文件中的值,python,Python,我试图弄清楚如何使用Python更新二进制文件中的数据 我已经习惯于使用“数组”阅读和编写完整的文件,但我在就地编辑方面遇到了麻烦 以下是我尝试过的: my_file.seek(100) my_array = array.array('B') my_array.append(0) my_array.tofile(my_file) 基本上,我想更改位置100处字节的值。上面的代码确实更新了该值,但随后截断了文件的其余部分。我希望能够更改位置100处的值,而不修改文件中的任何其他内容 请注意,我
my_file.seek(100)
my_array = array.array('B')
my_array.append(0)
my_array.tofile(my_file)
基本上,我想更改位置100处字节的值。上面的代码确实更新了该值,但随后截断了文件的其余部分。我希望能够更改位置100处的值,而不修改文件中的任何其他内容
请注意,我正在编辑数十亿字节的文件,所以我不想将整个文件读入内存,更新内存,然后写回磁盘。根据,您应该在
'rb+'
模式下打开文件,以避免截断行为。您是在'r+b'
模式下打开文件的吗?就是这样。谢谢因为我正在打开文件进行写作,所以我在“wb+”中打开了它,这更有意义。这就是我没有彻底阅读文档的原因。