Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Python更新二进制文件中的值_Python - Fatal编程技术网

用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处的值,而不修改文件中的任何其他内容 请注意,我

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

我已经习惯于使用“数组”阅读和编写完整的文件,但我在就地编辑方面遇到了麻烦

以下是我尝试过的:

my_file.seek(100)

my_array = array.array('B')
my_array.append(0)
my_array.tofile(my_file)
基本上,我想更改位置100处字节的值。上面的代码确实更新了该值,但随后截断了文件的其余部分。我希望能够更改位置100处的值,而不修改文件中的任何其他内容


请注意,我正在编辑数十亿字节的文件,所以我不想将整个文件读入内存,更新内存,然后写回磁盘。

根据,您应该在
'rb+'
模式下打开文件,以避免截断行为。

您是在
'r+b'
模式下打开文件的吗?

就是这样。谢谢因为我正在打开文件进行写作,所以我在“wb+”中打开了它,这更有意义。这就是我没有彻底阅读文档的原因。