10

如何使用“isinstance”来确定文件对象的“类型”,例如在表达式中:

>>> open(file)
4

3 回答 3

21

在 Python 2.x 中,所有文件对象都是类型file

>>> type(open('file.txt'))
<type 'file'>
>>>
>>> isinstance(open('file.txt'), file)
True
>>>

然而,在 Python 3.x 中,普通文件对象的类型为io.TextIOWrapper

>>> type(open('file.txt'))
<class '_io.TextIOWrapper'>
>>>
>>> from io import TextIOWrapper
>>> isinstance(open('file.txt'), TextIOWrapper)
True
>>>
于 2014-07-01T02:02:53.673 回答
1

文档中所述open

打开一个文件,返回一个文件对象file部分中描述的类型的对象

因此,open返回 a file,您应该使用isinstance(foo, file)

于 2014-07-01T02:04:29.273 回答
0

它的类型是file. 你可以通过输出来判断type(open("file","w"))

于 2014-07-01T02:03:51.680 回答