繁体   English   中英

如何检查对象是否是带有isinstance()的文件?

[英]How can I check if an object is a file with isinstance()?

如何检查对象是否是文件?

>>> f = open("locus.txt", "r")
>>> type(f)
<class '_io.TextIOWrapper'>
>>> isinstance(f, TextIOWrapper)
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    isinstance(f, TextIOWrapper)
NameError: name 'TextIOWrapper' is not defined
>>> isinstance(f, _io.TextIOWrapper)
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    isinstance(f, _io.TextIOWrapper)
NameError: name '_io' is not defined
>>> isinstance(f, _io)
Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    isinstance(f, _io)
NameError: name '_io' is not defined
>>> 

我有一个变量f ,它是一个文本文件。 当我打印f的类型时,Python3解释器显示'_io.TextIOWrapper',但如果我用isinstance()函数检查它会引发异常:NameError。

_ioio模块的C实现。 导入模块后,将io.IOBase用于直接子类:

>>> import io
>>> f = open("tests.py", "r")
>>> isinstance(f, io.IOBase)
True

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM