Очень неэффективно, но я не знаю другого способа сейчас, чтобы не перезаписывал байтов в середине (как это делает Бен Бланкс):
a=file('/tmp/test123','r+')
s=a.read()
a.seek(0)
a.write(s[:3]+'xxx'+s[3:])
a.close()
напишет 'xxx' со смещением 3: 123456789 --> 123xxx456789