扫码关注官方订阅号
小伙看你根骨奇佳,潜力无限,来学PHP伐。
Python2和3的糊涂账……
最早的时候,只有open。 你知道的,Python 2的编码多么蛋疼,所以,就有了codecs.open.
open
codecs.open
至于io.open,其实是因为Python 2的open实际上是file模块提供的,而Python 3的open是io模块提供的。然后,Python 2.6引入了这个Python 3的特性,叫做io.open,以便和原来的open相区分。
io.open
file
但是,这个Python 2.6的io.open是有问题的,在一些情况下表现很怪异。Python 2.7的io.open就正常了。
个人建议:
Python3直接用open。 Python2.x下用codecs.open,特别是有中文的情况,然后也可以避免踩到2.6下面io.open的坑。 如果希望代码同时兼容Python2和Python3,那么推荐用codecs.open。
关于codecs.open废弃的讨论……这个,我只能说,虽然有PEP 404,但是还是有人想要Python 2.8,Python 3都出来这么久了,但是实际采用率呢?未来的事情谁也说不准。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
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
。关于
codecs.open
废弃的讨论……这个,我只能说,虽然有PEP 404,但是还是有人想要Python 2.8,Python 3都出来这么久了,但是实际采用率呢?未来的事情谁也说不准。