Найти - Пользователи
Полная версия: При открытии файла на редактирование не урезать до нуля
Начало » Python для новичков » При открытии файла на редактирование не урезать до нуля
1
Vi
Всем доброго.
Подскажите пожалуйста, как мне открыть бинарный файл на редактирование, чтоб записать в его середину (позиция известна) некий поток байт?

Представляю себе это так:
    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()
в adir полный путь к файлу, файл существует, но при открытии урезается до fpos+61 байт, и заполняется нулями.
Как открывать бинарные файлы не урезая их в Python 3?
Или может я что-то делаю неправильно?
dimy44
Вам следует почитать документацию о функции open (в данном случае о ее втором параметре). В Вашем случае символ “w” указывает на то, что файл открыт для записи, и, если до этого такой файл существовал, он будет перезаписан.
py.user.next
#!/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]$
Vi
Намек понял, спасибо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB