python判断文件是否为空文件对象_判断Python对象是不是为文件对象的方法有哪些...
判斷Python對象是不是為文件對象的方法有哪些
發布時間:2020-08-13 14:01:00
來源:億速云
閱讀:76
作者:小新
這篇文章主要介紹判斷Python對象是不是為文件對象的方法有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
文件操作是開發中經常遇到的場景,那么如何判斷一個對象是文件對象呢?下面我們總結了3種常見的方法。
方法1:比較類型
第一種方法,就是判斷對象的type是否為filepython
>>>?fp?=?open(r"/tmp/pythontab.com")
>>>?type(fp)
>>>?type(fp)?==?file
True
注意:該方法對于從file繼承而來的子類不適用, 看下面的實例class?fileDetect(file):
pass?#?中間代碼無所謂,直接跳過不處理
fp2?=?fileDetect(r"/tmp/pythontab.com")
fileType?=?type(fp2)
print(fileType)
結果:
方法2:isinstance方法
要判斷一個對象是否為文件對象(file object),可以直接用isinstance()判斷。
如下代碼中,open得到的對象fp類型為file,當然是file的實例,而filename類型為str,自然不是file的實例>>>?isinstance(fp,?file)
True
>>>?isinstance(fp2,?file)
True
>>>?filename?=?r"/tmp/pythontab.com"
>>>?type(filename)
>>>?isinstance(filename,?file)
False
方法3:推測法
在python中,類型并沒有那么重要,重要的是”接口“。如果它走路像鴨子,叫聲也像鴨子,我們就認為它是鴨子(起碼在走路和叫聲這樣的行為上)。
按照這個思路我們就有了第3中判斷方法:判斷一個對象是否具有可調用的read,write,close方法(屬性)。def?isfile(f):
"""
Check?if?object?'f'?is?readable?file-like
that?it?has?callable?attributes?'read'?,?'write'?and?'close'
"""
try:
if?isinstance(getattr(f,?"read"),?collections.Callable)?\
and?isinstance(getattr(f,?"write"),?collections.Callable)?\
and?isinstance(getattr(f,?"close"),?collections.Callable):
return?True
except?AttributeError:
pass
return?False
以上是判斷Python對象是不是為文件對象的方法有哪些的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
總結
以上是生活随笔為你收集整理的python判断文件是否为空文件对象_判断Python对象是不是为文件对象的方法有哪些...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 创建数据库是列名无效咋办_怎样解决列名无
- 下一篇: javafx 图片作按钮_JavaFX