Ответ 1
Попробуйте следующее:
fh = open("filename.ext", "r+b")
fh.seek(offset)
fh.write(bytes)
fh.close()
Я хочу, чтобы иметь возможность перезаписывать некоторые байты с заданным смещением в файле с помощью Python.
Мои попытки потерпели неудачу и привели к:
Можно ли добиться этого с помощью Python портативным способом?
Попробуйте следующее:
fh = open("filename.ext", "r+b")
fh.seek(offset)
fh.write(bytes)
fh.close()
В соответствии с этой страницей python вы можете ввести file.seek для поиска смещения. Затем вы можете писать все, что хотите.
Чтобы избежать обрезки файла, вы можете открыть его с помощью "a +", а затем искать подходящее смещение.
Очень неэффективно, но я не знаю другого способа прямо сейчас, что не перезаписывает байты в середине (как это делает Блон Бланкс):
a=file('/tmp/test123','r+')
s=a.read()
a.seek(0)
a.write(s[:3]+'xxx'+s[3:])
a.close()
будет писать "xxx" со смещением 3: 123456789 --> 123xxx456789