Форум сайта python.su
0
Всем доброго.
Подскажите пожалуйста, как мне открыть бинарный файл на редактирование, чтоб записать в его середину (позиция известна) некий поток байт?
Представляю себе это так:
f=open(adir+t.Params['Doc'],'wb') fpos=int(t.Params['Edit']) f.seek(fpos+61) s=t.Params['Value'].encode('latin-1') f.write(s) f.close()
Офлайн
Вам следует почитать документацию о функции open (в данном случае о ее втором параметре). В Вашем случае символ “w” указывает на то, что файл открыт для записи, и, если до этого такой файл существовал, он будет перезаписан.
Офлайн
857
#!/usr/bin/env python3 with open('file.txt', 'r+b') as fout: fout.seek(10) fout.write(b'abc')
[guest@localhost py]$ cat file.txt
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[guest@localhost py]$ ./t.py
[guest@localhost py]$ cat file.txt
xxxxxxxxxxabcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[guest@localhost py]$
Отредактировано py.user.next (Дек. 7, 2012 03:59:37)
Офлайн
0
Намек понял, спасибо.
Офлайн