84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
小伙看你根骨奇佳,潜力无限,来学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都出来这么久了,但是实际采用率呢?未来的事情谁也说不准。
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都出来这么久了,但是实际采用率呢?未来的事情谁也说不准。