我通常在C++中执行这样的操作,但我正在使用python编写一个快速脚本而且我遇到了一堵墙.
如果我有一个二进制列表(或任何python存储"fread"的结果).我可以使用:buffer [0],buffer [1]等访问其中的各个字节.
我需要更改字节[8-11]以保存新的32位文件大小(读取:那里已有文件大小,我需要更新它).在C++中,我只是得到一个指向该位置的指针并将其转换为存储整数,但是使用python我突然意识到我不知道如何做这样的事情.
如何在特定位置更新缓冲区中的4个字节以保存python中的整数值?
编辑
我将添加更多,因为我似乎无法从解决方案中找到它(虽然我可以看到它们在正确的轨道上).
首先,我在python 2.4(并且无法升级,大公司服务器) - 所以这显然限制了我的选择.很抱歉没有提及,我不知道它有这么多的功能.
其次,让我们做到这一点非常简单.
假设我有一个名为'myfile.binary'的二进制文件,其中包含十六进制的五字节内容'4C53535353' - 这相当于文件中单独的字母"L和4xS"的ascii表示.
如果我做:
f = open('myfile.binary', 'rb')
contents = f.read(5)
Run Code Online (Sandbox Code Playgroud)
内容应该(来自Sven Marnach的答案)保存一个五字节的不可变字符串.
仅使用Python 2.4工具,如何将'contents'中的4 S更改为任意整数值?即给我一行代码,可以使字节索引内容[1-4]包含值为12345678910的32位整数'myint'.
python ×1