我希望能够使用 Python 覆盖文件中给定偏移量的一些字节。
我的尝试惨遭失败并导致:
- 覆盖偏移处的字节,但也会在之后截断文件(文件模式=“w”或“w+”)
- 在文件末尾附加字节(文件模式=“a”或“a+”)
是否可以通过 Python 以可移植的方式实现这一目标?
尝试这个:
fh = open("filename.ext", "r+b")
fh.seek(offset)
fh.write(bytes)
fh.close()
根据这个 python 页面,您可以键入 file.seek 来寻找特定的偏移量。然后你可以写任何你想要的。
为避免截断文件,您可以使用“a+”打开它,然后寻找正确的偏移量。
非常低效,但我现在不知道任何其他方式,它不会覆盖中间的字节(就像 Ben Blanks 所做的那样):
a=file('/tmp/test123','r+')
s=a.read()
a.seek(0)
a.write(s[:3]+'xxx'+s[3:])
a.close()
将在偏移量 3 处写入“xxx”:123456789 --> 123xxx456789