Answers:
您应该始终使用open()
。
如文档所述:
打开文件时,最好使用open()而不是直接调用此构造函数。文件更适合类型测试(例如,编写“ isinstance(f,file)”)。
另外,自Python 3.0起file()
已被删除。
file()
是一种类型,例如int或列表。open()
是用于打开文件的函数,它将返回一个file
对象。
这是何时应使用open的示例:
f = open(filename, 'r')
for line in f:
process(line)
f.close()
这是何时应使用文件的示例:
class LoggingFile(file):
def write(self, data):
sys.stderr.write("Wrote %d bytes\n" % len(data))
super(LoggingFile, self).write(data)
如您所见,存在两者的充分理由和明确的用例。
with
语句打开文件。with open(filename, 'r') as f: \ for line in f: \ process(line)
。这样可以避免显式关闭。Python 2.6及更高版本本身支持该with
语句。在Python 2.5中,必须添加from __future__ import with_statement
到代码的顶部。
file
该类配备了特殊的方法,只要通过with
语句打开文件,这些方法就会自动调用。这些特殊方法可确保正确安全地打开和关闭文件。
仅使用open()打开文件。file()实际上在3.0中已被删除,目前不推荐使用。他们之间有一种奇怪的关系,但是file()现在正在进行中,因此不再需要担心。
以下来自Python 2.6文档。[括号内的内容]由我添加。
打开文件时,最好使用open()而不是直接调用此[file()]构造函数。文件更适合类型测试(例如,编写isinstance(f,file)