Python Glossary English

Python 3.3+Linux · macOSosфункция

os.pread

os — позиционный ввод-вывод

Читает n байтов из дескриптора с заданной позиции, не меняя текущее смещение. Доступно на Unix.

Синтаксис

os.pread(...)

Не трогает общую позицию дескриптора, поэтому несколько потоков могут читать разные участки одного файла без блокировок вокруг seek плюс read. Как и os.read, может вернуть меньше запрошенного; пустой результат — смещение за концом файла. На Windows её нет.

Примеры

import os
fd = os.open('pread_demo.txt', os.O_RDWR | os.O_CREAT)  # временный файл только для примера
print(os.write(fd, b'Hello, world!'))  # → 13 — записали 13 байт, текущее смещение стало 13
print(os.pread(fd, 5, 0))  # → b'Hello' — читаем 5 байт с позиции 0
print(os.lseek(fd, 0, os.SEEK_CUR))  # → 13 — pread не сдвинул текущее смещение файла, в отличие от os.read
print(os.pread(fd, 5, 1000))  # → b'' — чтение за концом файла возвращает пустые байты, а не ошибку
os.close(fd)  # закрываем дескриптор

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности