Python中file()和open()的区别?

Python里file()和open()有什么区别?
现在自己知道的区别有file()不能创建文件,open()可以。
还有其他区别吗?

阅读 8.9k
2 个回答

Python 2 里基本没区别。Python 3 里没 file

Python 2 里,file 是文件对象。open 是返回新创建的文件对象的内建函数,相当于:

pythondef open(*args, **kwargs):
  return file(*args, **kwargs)

它真实的定义是:

cstatic PyObject *
builtin_open(PyObject *self, PyObject *args, PyObject *kwds)
{
    return PyObject_Call((PyObject*)&PyFile_Type, args, kwds);
}

所以 file 也是能够创建文件的。

没有特别的区别吧, 查看他们的文档

>>> help(open)

open(...)
    open(name[, mode[, buffering]]) -> file object

    Open a file using the file() type, returns a file object.  This is the
    preferred way to open a file.  See file.__doc__ for further information.
(END)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题