Я хочу использовать буферизованный поток, потому что хочу использовать метод 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()
не возвращает что-то совместимое с ней?