Python 3.3+Linux · macOSosфункция
os.pwrite
os — позиционный ввод-вывод
Пишет байты в дескриптор по заданной позиции, не меняя текущее смещение. Доступно на Unix.
Синтаксис
os.pwrite(...)
Пишет по указанному смещению, не сдвигая общую позицию, — удобно для записи в разные участки файла из нескольких потоков. Если файл открыт с O_APPEND, на Linux данные всё равно уйдут в конец, несмотря на смещение. Может записать не всё — проверяйте возвращённое число.
Примеры
import os
fd = os.open('pwrite-demo.bin', os.O_RDWR | os.O_CREAT | os.O_TRUNC) # временный файл для опытов
print(os.pwrite(fd, b'0123456789', 0)) # → 10 — записано байт начиная со смещения 0
print(os.pwrite(fd, b'XY', 4)) # → 2 — точечная правка двух байтов в середине файла
print(os.pread(fd, 10, 0)) # → b'0123XY6789'
print(os.lseek(fd, 0, os.SEEK_CUR)) # → 0 — pwrite не двигает позицию fd, в отличие от os.write
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности