永发信息网

python3 codecs.open和open的区别

答案:2  悬赏:0  手机版
解决时间 2021-01-28 18:49
  • 提问者网友:末路
  • 2021-01-28 00:54
python3 codecs.open和open的区别
最佳答案
  • 五星知识达人网友:渡鹤影
  • 2021-01-28 01:02
最早的时候,只有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。
全部回答
  • 1楼网友:拜訪者
  • 2021-01-28 02:40
错误是由于从os模块引入了所有的函数导致的,os模块下有一个open函数,接受整型的文件描述符和打开模式,from os import *引入os模块的open函数,覆盖了python内建的open函数,导致错误。 删除from os import *这行,然后再根据需要,指定引入os模块下的函数 建议任何时候都不要使用from module import *方式引入模块函数。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯