Python判断对象是否为文件对象(文件对象)的三种方法示例

  

文件操作是开发中经常遇到的场景,那么如何判断一个对象是文件对象呢?下面我们总结了3种常见的方法。

  

  

第一种方法,就是判断对象的类型是否为文件

        在在在fp=开放(r/tmp/pythontab.com)   在在在类型(fp)   & lt;类型的文件比;   在在在文件类型(fp)==真正的   之前      

注意:该方法对于从文件继承而来的子类不适用,看下面的实例

        类fileDetect(文件):   通过#中间代码无所谓,直接跳过不处理   fp2=fileDetect (r/tmp/pythontab.com)   文件类型=类型(fp2)   打印(文件类型)   之前      

结果:   

  

& lt;类__main__.fileDetect的祝辞

     


  

  

要判断一个对象是否为文件对象(file对象),可以直接用isinstance()判断。

  

如下代码中,开放得到的对象fp类型为文件,当然是文件的实例,而文件名类型为str,自然不是文件的实例

        在在在isinstance (fp、文件)   真正的   在在在isinstance (fp2,文件)   真正的   在在在文件名=r“/tmp/pythontab.com”   在在在类型(文件名)   & lt;类型的str比;   在在在isinstance(文件名,文件)   假      之前      


  

  

在python中,类型并没有那么重要,重要的是“接口”。如果它走路像鸭子,叫声也像鸭子,我们就认为它是鸭子(起码在走路和叫声这样的行为上)。

  

按照这个思路我们就有了第3中判断方法:判断一个对象是否具有可调用的读,写,近方法(属性)。

  

参看:http://docs.python.org/glossary.html term-file-object

        def isfile (f):   ”“”   检查对象“f”是否可读的类文件   它调用属性“读”、“写”和“关闭”   ”“”   试一试:   如果isinstance (getattr (f,“读”),collections.Callable) \   和isinstance (getattr (f,“写”),collections.Callable) \   和isinstance (getattr (f,“关闭”),collections.Callable):   还真   除了AttributeError:   通过   返回False      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Python判断对象是否为文件对象(文件对象)的三种方法示例