这应该很容易! 但我一直无法找到这个问题的答案.
使用python,我想将二进制文件读入内存,修改文件的前四个字节,然后将文件写回.
必须有一种简单的方法来编辑四个小字节!对?
kin*_*all 14
为什么要读取整个文件以在开头改变四个字节?这不应该工作吗?
with open("filename.txt", "r+b") as f:
f.write(chr(10) + chr(20) + chr(30) + chr(40))
Run Code Online (Sandbox Code Playgroud)
即使您需要从文件中读取这些字节来计算新值,您仍然可以:
with open("filename.txt", "r+b") as f:
fourbytes = [ord(b) for b in f.read(4)]
fourbytes[0] = fourbytes[1] # whatever, manipulate your bytes here
f.seek(0)
f.write("".join(chr(b) for b in fourbytes))
Run Code Online (Sandbox Code Playgroud)
with open(filename, 'r+b') as f:
bytes = f.read(4)
newbytes = 'demo'
f.seek(0)
f.write(newbytes)
Run Code Online (Sandbox Code Playgroud)