【问题标题】:Difference between io.open vs open in pythonio.open 与 python 中的 open 之间的区别
【发布时间】:2016-02-26 18:13:30
【问题描述】:

过去,codecsio 取代。尽管使用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 开始,则没有必要让这变得更复杂。

标签: python file python-3.x io python-2.x


【解决方案1】:

根据文档在 Python3 中的情况:

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

这是内置 open() 函数的别名。

虽然内置的 open() 和相关的 io 模块是 处理编码文本文件的推荐方法,此模块 [即codecs] 提供了额外的实用函数和类 在处理二进制文件时允许使用更广泛的编解码器 文件

(粗体和斜体是我的编辑)

【讨论】:

    猜你喜欢
    • 2017-05-27
    • 2011-11-05
    • 2018-04-24
    • 2019-09-26
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多