如何检查一个对象是否为文件?
>>> 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。
_io
和TextIOWrapper
不是全局变量,因此您不能直接使用它们。这就是错误的原因。 - Ashwini Chaudhary2to3
如何处理这个问题? - smcifix_types
修复程序甚至将FileType
映射注释掉了。 - Martijn Pieters