Python2和3的糊涂账……
最早的时候,只有open
。
你知道的,Python 2的编码多么蛋疼,所以,就有了codecs.open
.
至于io.open
,其实是因为Python 2的open
实际上是file
模块提供的,而Python 3的open
是io模块提供的。然后,Python 2.6引入了这个Python 3的特性,叫做io.open
,以便和原来的open
相区分。
但是,这个Python 2.6的io.open
是有问题的,在一些情况下表现很怪异。Python 2.7的io.open
就正常了。
个人建议:
Python3直接用open
。
Python2.x下用codecs.open
,特别是有中文的情况,然后也可以避免踩到2.6下面io.open
的坑。
如果希望代码同时兼容Python2和Python3,那么推荐用codecs.open
。
Python3:io.open() function is a alias for the builtin open() function