Python 3.3.2 comprueba que el objeto es de tipo archivo

Estoy portando de Python 2.7 a Python 3.3.2. En Python 2.7, solía poder hacer algo como assert(type(something) == file) , pero parece que en Python 3.3.2 esto es incorrecto. ¿Cómo hago algo similar en Python 3.3.2?

Los objetos de archivo de Python 3 son parte del módulo io , prueba contra clases ABC en ese módulo:

 from io import IOBase if isinstance(someobj, IOBase): 

No use el type(obj) == file en Python 2; usaría isinstance(obj, file) lugar. Incluso entonces, desearías probar las capacidades ; algo que el ABC te permite hacer; La función isinstance() devolverá True para cualquier objeto que implemente todos los métodos que define la Clase Base Abstracta.

Manifestación:

 >>> from io import IOBase >>> fh = open('/tmp/demo', 'w') >>> isinstance(fh, IOBase) True >>> isinstance(object(), IOBase) False