Python Glossary English

все Python 3ioпонятие

io.BufferedRandom

бинарные потоки

Буферизованный поток с произвольным доступом (чтение и запись + seek) поверх сырого потока — для файлов, открытых в режиме 'r+b'.

Синтаксис

io.BufferedRandom(raw)

Вручную этот класс почти не собирают — его возвращает open(path, 'r+b'), и разница с соседними режимами важнее самого класса: 'r+b' требует существующий файл и не обрезает его, а 'w+b' обнуляет содержимое при открытии. Запись уходит в буфер, поэтому до flush() или close() другой процесс (и даже другой дескриптор того же файла) увидит старые данные — если нужна немедленная видимость, вызывайте flush() явно.

Примеры

import io
print(issubclass(io.BufferedRandom, io.BufferedIOBase))   # → True
b = io.BufferedRandom(io.BytesIO(b'abcdef'))
print(b.read(3))   # → b'abc'
print(b.tell())   # → 3
print(b.seek(0))   # → 0
print(b.write(b'XY'))   # → 2
b.seek(0)
print(b.read())   # → b'XYcdef'
print(b.readable(), b.writable(), b.seekable())   # → True True True

См. также

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