Я хочу использовать буферизованный поток, потому что я хочу использовать метод peek()
для просмотра вперед, но использую свой поток другим методом, который ожидает файлоподобный объект (я бы использовал seek()
, но, возможно, придется обрабатывать ввод-вывод по конвейеру, который не поддерживает произвольный доступ.)
Но этот тестовый пример не пройден:
AttributeError: объект 'file' не имеет атрибута '_checkReadable'
import sys
import io
srcfile = sys.argv[1]
with open(srcfile, 'rb') as f:
fbuf = io.BufferedReader(f)
print fbuf.read(20)
Что происходит и как это исправить? Я думал, что BufferedReader предназначен для буферизации потока. Если да, то почему функция open()
не возвращает что-то совместимое с ней?