文件操作是开发中经常遇到的场景,那么如何判断一个对象是文件对象呢?下面我们总结了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判断对象是否为文件对象(文件对象)的三种方法示例