Python中io.open与open的区别
以前有个叫 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] 提供了一些额外的工具函数和类,可以在处理二进制文件时使用更多种类的编码方式。
(加粗和斜体是我自己的修改)