我希望能够使用Python覆盖文件中给定偏移量的某些字节。
我的尝试失败了,导致:
是否可以通过Python以便携方式实现这一目标?
答案 0 :(得分:32)
试试这个:
fh = open("filename.ext", "r+b")
fh.seek(offset)
fh.write(bytes)
fh.close()
答案 1 :(得分:4)
根据this python page,您可以键入file.seek以寻求特定的偏移量。然后你可以写任何你想要的东西。
为避免截断文件,您可以使用“a +”打开它,然后寻找正确的偏移量。
答案 2 :(得分:0)
非常低效,但我现在还不知道其他任何方式,不会覆盖中间的字节(正如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