Python中io.open与open的区别

40 投票
1 回答
13020 浏览
提问于 2025-05-10 23:53

以前有个叫 codecs 的东西,现在被 io 替代了。虽然现在更推荐使用 io.open,但大多数入门的 Python 课程还是教大家用 open

有个问题讨论了 Python 中 open 和 codecs.open 的区别,但难道 open 只是 io.open 的一种变体吗?

如果不是,那为什么使用 io.open 更好?而为什么用 open 教起来更简单呢?

在这篇文章中 (http://code.activestate.com/lists/python-list/681909/),Steven DAprano 说内置的 open 实际上是用 io.open 来实现的。那么我们是不是都应该把代码改成用 open 而不是 io.open 呢?

除了为了兼容 Python 2.x,还有其他理由在 Python 3.0 中使用 io.open 而不是 open 吗?

相关文章:

  • 暂无相关问题
暂无标签

1 个回答

44

根据文档,在Python3中的情况是:

io.open(file, *[options]*)

这个其实是内置的open()函数的一个别名。

还有:

虽然内置的open()函数和相关的io模块是处理编码文本文件的推荐方法,但这个模块 [也就是codecs] 提供了一些额外的工具函数和类,可以在处理二进制文件时使用更多种类的编码方式。

(加粗和斜体是我自己的修改)

撰写回答