Python Glossary English

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

io.BufferedReader

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

Буферизованный поток бинарного чтения поверх сырого потока; сглаживает мелкие read() крупными блоками.

Синтаксис

io.BufferedReader(raw)

Обычно его не создают руками — именно BufferedReader возвращает open(path, 'rb'), а через .buffer до него можно добраться у текстового файла или у sys.stdin. Полезное отличие от сырого потока: read(n) отдаёт ровно n байт и меньше только на конце файла, а peek() позволяет заглянуть вперёд, не сдвигая позицию. Помните, что read() без аргумента затягивает весь файл в память — большие файлы читайте кусками фиксированного размера или построчно.

Примеры

import io
b = io.BufferedReader(io.BytesIO(b'hello'))
print(b.read())   # → b'hello'
r = io.BufferedReader(io.BytesIO(b'line1\nline2\n'))
print(r.readline())   # → b'line1\n'
print(r.readlines())   # → [b'line2\n']
p = io.BufferedReader(io.BytesIO(b'abcdef'))
print(p.peek())   # → b'abcdef'
print(p.read(2))   # → b'ab'
print(p.write(b'x'))   # → io.UnsupportedOperation

См. также

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