python: utiliser io.BufferedReader sur un flux obtenu avec open ()?

Je veux utiliser un tampon de flux parce que je veux utiliser un peek() de la méthode de jeter un regard vers l'avant, mais utiliser mon flux avec une autre méthode qui attend un fichier objet semblable. (Je ne l'utiliserais seek()mais peut-être la poignée d'ambiance dans l'I/O qui ne prend pas en charge l'accès aléatoire.)

Mais ce test échoue:

AttributeError: 'fichier' objet n'a pas d'attribut "_checkReadable'

import sys
import io

srcfile = sys.argv[1]
with open(srcfile, 'rb') as f:
    fbuf = io.BufferedReader(f)
    print fbuf.read(20)

Ce qui se passe et comment puis-je résoudre ce problème? J'ai pensé BufferedReader était destiné à de la mémoire tampon d'un ruisseau. Si oui, pourquoi ne le open() fonction retourne pas quelque chose qui est compatible avec elle?

source d'informationauteur Jason S