nos*_*klo 152
你应该经常使用open().
正如文件所述:
打开文件时,最好使用open()而不是直接调用此构造函数.file更适合于类型测试(例如,编写"isinstance(f,file)").
此外,自Python 3.0以来file() 已被删除.
Rya*_*yan 32
有两个原因:蟒蛇哲学"应该有一种方法去做"并且file正在消失.
file是实际的类型(使用例如file('myfile.txt')调用它的构造函数).open是一个返回文件对象的工厂函数.
在python 3.0 file中将从内置转变为由io库中的多个类实现(有点类似于带有缓冲读取器的Java等)
Jer*_*rub 19
file()是一个类型,如int或列表.open()是一个用于打开文件的函数,它将返回一个file对象.
这是一个应该使用open的示例:
f = open(filename, 'r')
for line in f:
process(line)
f.close()
Run Code Online (Sandbox Code Playgroud)
这是您何时应该使用文件的示例:
class LoggingFile(file):
def write(self, data):
sys.stderr.write("Wrote %d bytes\n" % len(data))
super(LoggingFile, self).write(data)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,存在这两者的充分理由,以及两者的明确用例.