我们怎么来告诉python解释器不要用它默认的编码方式来读取文件,而是要用我告诉它的编码方式呢?
这时候我们就要给这个python文件,指定一个文件头,修改默认的编码。
指定这个文件头的方式就是,在python文件的首行写# coding:GBK。
# coding:GBK
注意一定要写在首行,因为接下来你所有的代码,都是参照首行指定的编码方式读取,然后转成Unicode编码的。
而且这个文件头负责的是读文件的编码方式,它管不了存文件的编码方式。
真正管存文件编码方式的是编辑器,如果你搞不清楚当初存文件时候用的什么编码,那你就只能蒙了。蒙对了还好,蒙错了就一定会乱码。
现在这个编码方式我指定好了,然后我们再来到命令行试试看。
敲上下方向键,就可以切换上次输入的命令,敲回车。
这个程序就成功运行了。
那我们平时练习的时候也没有指定文件头,为什么也没乱码呢?
还记得我们一开始新建这个test.py文件之后,第一步做了什么吗?我们是把默认的UTF-8改成了GBK。
也就是说pycharm默认就帮我们把文件保存成了UTF-8格式了,而python3默认也是用UTF-8读取文件的。
所以我们平时没有遇到乱码问题,并不是说你解决了乱码问题,而是说你碰巧蒙对了,所以你写的程序兼容性更好,python3可以执行,python2也可以执行,就应该给你的python文件加上一个文件头,指定一下编码方式。
而这个指定的编码方式,就是你当初用什么编码方式存的,这里就应该要指定什么编码方式。
当然这个#后面空格可以加也可以不加,都没问题。
虽然这是注释的语法,但是这样写到首行就不单单是注释了,还有表示文件头的作用。
现在我们就把python程序运行过程中,前两个阶段的乱码问题解决了,只要指定文件头,把读文件的时候用编码方式,指定成你存入硬盘时用的编码方式就可以了。
最后我再和你说一个pycharm很牛B的功能。
Pycharm为了保持一致性,你在文件头写什么,它右下角都会保持一直,你上面写GBK,右下角就会变成GBK。
你可以自己试一下。
未经允许不得转载:445IT之家 » python 用指定编码方式来读取文件