io.open 与 python 中的 open 之间的区别
Posted
技术标签:
【中文标题】io.open 与 python 中的 open 之间的区别【英文标题】:Difference between io.open vs open in python 【发布时间】:2016-02-26 18:13:30 【问题描述】:过去,codecs
被 io
取代。尽管使用io.open
似乎更可取,但大多数入门python 课程仍然教授open
。
Difference between open and codecs.open in Python 有个问题,但 open
只是 io.open
的鸭子类型?
如果不是,为什么使用io.open
更好?为什么使用open
教学更容易?
在这篇文章 (http://code.activestate.com/lists/python-list/681909/) 中,Steven DAprano 说内置的 open
在后端使用 io.open
。 那么我们是否都应该重构我们的代码以使用open
而不是io.open
?
除了向后兼容py2.x之外,还有什么理由在py3.0中使用io.open
而不是open
?
【问题讨论】:
查看help(open)
,你会发现它和io.open()
是一样的——甚至标题都写着Help on built-in function open in module io
,也就是说,没有理由使用io.open()
if你正在用 Python 3 编写程序。
@TimPietzcker, io.open
只是为了向后兼容,对吧?如果是这样,我应该开始更改python3
的所有课程材料=)
是的,可能。它使从 2.x 到 3.x 的移植更容易,但如果您是从 3.x 开始,则没有必要让这变得更复杂。
【参考方案1】:
根据文档在 Python3 中的情况:
io.open(file, *[options]*)
这是内置 open() 函数的别名。
和
虽然内置的 open() 和相关的 io 模块是 处理编码文本文件的推荐方法,此模块 [即codecs] 提供了额外的实用函数和类 在处理二进制文件时允许使用更广泛的编解码器 文件
(粗体和斜体是我的编辑)
【讨论】:
以上是关于io.open 与 python 中的 open 之间的区别的主要内容,如果未能解决你的问题,请参考以下文章